我想在中间有一个固定宽度的图像。
那没问题。
但我希望它旁边的左右div为2行。
示例。
我在中间有一个100px * 100px图像,并希望2个div为50% - 50px宽度而不使用calc。 2个div应该有一条线也没问题。
我只是用
{ background: white; margin-top: 48px; margin-bottom: 48px; }
现在的问题是让这两个div填充图像的左右空间。 毋庸置疑,整个屏幕的宽度都是动态的。
无论如何只能使用CSS吗?
答案 0 :(得分:0)
您可以尝试对其进行扭曲,并将两侧的div设为25%,将图像设为50%。
这与具有50%图像宽度值的div相同。
CSS
.wrapper {width: 200px;}
.left {width: 25%;}
.right {width:25%;}
.image {width: 50%;}
HTML
<div class="wrapper">
<div class="left"></div>
<div class="image">
<img src="" />
</div>
<div class="right"></div>
</div>
答案 1 :(得分:0)
这是我的解决方案,使用左右div的包装,宽度为50%,包含其余div,边距为图像宽度的一半。图像本身使用绝对定位位于包装中。
<强> HTML 强>
<div class="wrapper">
<div class="left"><div>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.</div></div>
<div class="right"><div>Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</div></div>
<img src="your_image.png" alt="" />
</div>
<强> CSS 强>
.wrapper {
position: relative;
overflow: hidden;
height: auto; /* match the height of the floating divs */
}
.wrapper > div > div {
min-height: 100px; /* at least as high as the image */
}
.wrapper > .left {
float: left;
width: 50%;
}
.wrapper > .left > div {
margin-right: 50px;
background: blue;
}
.wrapper > .right {
float: right;
width: 50%;
}
.wrapper > .right > div {
margin-left: 50px;
background: red;
}
.wrapper > img {
position: absolute;
width: 100px;
height: 100px;
top: 0;
left: 50%;
margin-left: -50px;
}
这是一个JSFiddle:http://jsfiddle.net/j84LB/
答案 2 :(得分:0)
似乎很容易使用display:table/display:table-cell
无需额外的div等。
<强> HTML 强>
<body>
<div class="wrapper">
<div class="left">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor
</div>
<div><img src="http://lorempixel.com/output/abstract-q-c-100-100-6.jpg" alt="" /></div>
<div class="right">Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
</div>
</div>
</body>
<强> CSS 强>
.wrapper {
position: relative;
overflow: hidden;
height: auto;
display:table;
}
.wrapper > div {
display:table-cell;
vertical-align: middle;
padding: 1em;
}
.wrapper > div:nth-child(2) {
min-height: 100px;
width:100px;
padding:0;
}