<- 50% -> <- 50% ->
+----------------------+ +----------------------+
| Lorem ipsum dolor si | | some |
| t amet, consectetuer | | image |
| adipiscingelit. Aene | | |
| an commodoligula ege | | |
| t dolor. | | |
+----------------------+ +----------------------+
vs
+------------+ +------------+
| Lorem ipsu | | some |
| m dolor si | | image |
| t amet, co | | |
| nsectetuer | | | Reduce
| adipiscing | | |<-- browser
| elit. Aene | | | width
| an commodo | | |
| ligula ege | | |
| t dolor. | | |
+------------+ +------------+
为了实现这一点,我将两个容器都包装在一个
div
中,并将图像显示为 background-image:<div class="outerTable">
<div>Lorem ipsum dolor sit amet, consectetuer</div>
<div class="image">
<div></div>
</div>
</div>
以下为相应的样式:
.outerTable {
width: 100%;
display: table;
}
.outerTable > div {
display: table-cell;
border: 10px solid transparent;
background-clip: padding-box;
position: relative;
background-color: #fff;
padding: 2%;
width: 50%;
}
.image {
background-color: #fff;
}
.image > div {
background-image: url(http://lorempixel.com/500/300/abstract/4);
background-size: cover;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
padding: 6%;
background-clip: content-box;
background-position: 0 0;
}
这里有一个可运行的示例:http://jsfiddle.net/KxFUL/
在Chrome、Safari和Opera中,这个示例可以正常工作。但是在FireFox中,图片会覆盖整个页面,在IE11中则完全不显示…
我是否漏掉了什么,理解错误?有什么想法?还有其他的解决方案吗?