【发布时间】:2017-01-11 09:13:02
【问题描述】:
我正在预览帖子,例如它的文本和图像作为带有一些过滤器的背景。
问题是我想要整个 div 不是1300px,而是只有650px。
但是,这样我将无法使用display: flex,并且不会让带有img的div与带有文本的div具有相同的高度。
有没有办法只用css(没有js)来解决这个问题?
这里是代码:http://codepen.io/anon/pen/RGwOgN?editors=1111
.post {
width: 650px;
padding: 25px 25px;
z-index: 10;
position: relative;
color: white;
}
.flex-row {
display: flex;
width: 1300px; /* here is a problem */
}
.back-img {
width: 650px;
background-size: cover;
position: relative;
z-index: 0;
left: -650px;
filter: blur(3px);
-webkit-filter: blur(3px);
-moz-filter: blur(3px);
-o-filter: blur(3px);
-ms-filter: blur(3px);
filter: url(#blur);
overflow: hidden;
}
<div class="flex-row">
<div class="post">
<h1>Lorem ipsum</h1>
<h2>text here</h2>
<p class="lead">text hete</p>
</div>
<div class="back-img" style="background-image: linear-gradient(
rgba(0, 0, 0, 0.3),
rgba(0, 0, 0, 0.3)
),url(http://unsplash.com/photos/g-AklIvI1aI/download)">
<div></div>
</div>
</div>
如您所见,它可以正常工作,但前提是父元素 (flex-row) 设置为 size*2,因为另一种方式会自动减小子元素的大小。
【问题讨论】:
标签: html css flexbox css-position