我有以下html:
<div class="container">
<img src="..."/>
<p>Heading</p>
</div>
我想要这种行为:
- 如果没有图像(没有 <img> 标签),p 应该指定 .container 的大小。
- 如果有图像,但 p 更高,则 .container 应该与 p 一样高。
- 如果图像更高,则 .container 应该与图像一样高,并且 p 应该从 .container 的底部“增长”并根据其中的文本数量向上“增长”(如 position:absolute;bottom:0 在一个位置内:相对框)。
- p 应该有一个半透明的背景,以便您可以通过元素部分看到图像。透明度不是问题,但我将其包括在内,因为我不想要使 p 占据 .container 的全部高度然后重新定位文本的解决方案。
- 它必须在 IE8 中工作(仅需要浏览器)。
- 如果需要,我可以自由地操作 html 结构,但我希望它尽可能简单。
我可以用 javascript 简单地做到这一点,但可以用纯 CSS 做吗?
(这个codepen部分显示了我正在尝试做的事情:http ://codepen.io/anon/pen/sqjnz )
编辑澄清:我希望 .container 与最高的孩子(img 或 p)一样高。如果 img 和 p 都存在,则文本应位于图像顶部并锚定在 .contianer 的底部,以便随着它的增长它覆盖越来越多的图像。如果没有图像(img 标签不存在),盒子应该表现得像一个普通的 div 并展开到与 p 相同的大小。