我有一个div(.news-container
)显示功能。在该div内,我有5个项目,第一个是100%宽度,其他4个是50%宽度。问题是这4个项目即使具有align-content: stretch
的弹性项目也没有相同的高度。当我们设置父级显示功能时,它们应该具有相同的高度吗?还是我在这里做错了什么?
body {
font-family: "Open Sans", Arial, sans-serif;
}
a {
text-decoration: none;
}
h1,
h2,
h3,
h4,
h5 {
margin: 0 0 20px 0;
}
.clearfix::after {
content: "";
clear: both;
display: table;
}
.content {
margin: 20px auto;
}
.float-content {
float: left;
}
.left-content {
width: 60%;
}
.right-content {
width: 40%;
}
.news-container {
display: flex;
flex-wrap: wrap;
padding-right: 5px;
overflow: hidden;
align-items: stretch;
-webkit-align-content: stretch;
-ms-flex-line-pack: stretch;
align-content: stretch;
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
}
.news-list-container {
padding-left: 5px;
}
.news-container .item {
position: relative;
margin-bottom: 10px;
width: calc(50% - 5px);
padding: 0;
}
.news-container .item:nth-child(even) {
margin-right: 10px;
}
.news-container .item:first-child {
width: 100%;
margin-right: 0;
}
.news-container .item .news-link {
position: absolute;
top: 0;
left: 0;
z-index: 2;
background: #DC191B;
color: #fff;
padding: 10px;
text-transform: uppercase;
}
.news-container .item img {
width: 100%;
display: block;
margin-bottom: 0;
}
.news-container .item a.caption {
display: block;
padding: 10px 20px 13px 20px;
background-color: #000;
color: #fff;
font-family: 'Roboto Condensed', sans-serif;
font-size: 28px;
font-weight: bold;
}
@media screen and (min-width: 1200px) {
.content {
max-width: 970px;
}
}
<div class="wrapper">
<div class="content clearfix">
<div class="left-content float-content">
<div class="news-container">
<div class="item">
<a class="news-link" href="#">
New
</a>
<img src="https://www.w3schools.com/html/pic_trulli.jpg" />
<a class="caption" href="#" target="_blank">
Lorem ipsum
</a>
</div>
<div class="item">
<img src="https://www.w3schools.com/html/pic_trulli.jpg" />
<a class="caption" href="#" target="_blank">
Lorem ipsum dolor sit amet
</a>
</div>
<div class="item">
<img src="https://www.w3schools.com/html/pic_trulli.jpg" />
<a class="caption" href="#" target="_blank">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi a turpis sagittis, viverra nibh a, lobortis libero.
</a>
</div>
<div class="item">
<img src="https://www.w3schools.com/html/pic_trulli.jpg" />
<a class="caption" href="#" target="_blank">
Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...
</a>
</div>
<div class="item">
<img src="https://www.w3schools.com/html/pic_trulli.jpg" />
<a class="caption" href="#" target="_blank">
Quisque sed tincidunt neque. Sed ut lacinia ex.
</a>
</div>
</div>
</div>
<div class="right-content float-content">
<div class="news-list-container">
<h2>
Latest update
</h2>
<ul>
<li>
News Number 1
</li>
<li>
News Number 2
</li>
<li>
News Number 3
</li>
<li>
News Number 4
</li>
</ul>
</div>
</div>
</div>
</div>
答案 0 :(得分:1)
实际上,您的物品高度相同。只是每个项目中的内容都不会扩展到覆盖项目的高度。这是一个示例:
如开发工具大纲所示,左侧的项目(内容较短)的高度与右侧的项目相同。
您可以在项目上使用display: flex
,因此align-items: stretch
将应用于内容。
将此添加到您的代码中:
.news-container .item:nth-child(2),
.news-container .item:nth-child(4),
.news-container .item:nth-child(5) {
display: flex;
flex-wrap: wrap;
}
现在内容填满了每个项目。