我正在尝试水平拉伸内部对象,以便它们填充容器的宽度。
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
display: flex;
height: 200px;
align-items: stretch;
background-color: DodgerBlue;
}
.flex-container > div {
background-color: #f1f1f1;
margin: 10px;
text-align: center;
line-height: 75px;
font-size: 30px;
}
</style>
</head>
<body>
<h1>The align-items Property</h1>
<p>The "align-items: stretch;" stretches the flex items to fill the container (this is default):</p>
<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
</body>
</html>
内部div元素的高度得益于该属性:
align-items: stretch;
如何也拉伸这些元素的宽度?
答案 0 :(得分:1)
只需添加flex:1
即可伸缩项目:
.flex-container {
display: flex;
height: 200px;
align-items: stretch;
background-color: DodgerBlue;
}
.flex-container > div {
background-color: #f1f1f1;
margin: 10px;
text-align: center;
line-height: 75px;
font-size: 30px;
flex: 1;
}
<h1>The align-items Property</h1>
<p>The "align-items: stretch;" stretches the flex items to fill the container (this is default):</p>
<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
本指南可能对您有很大帮助:https://css-tricks.com/snippets/css/a-guide-to-flexbox/
答案 1 :(得分:1)
您使用默认值为flex-direction: row
的flexbox。这会将元素排成一行,并根据其初始宽度和flex属性调整其宽度。
这意味着align-items: stretch;
将以这种方式拉伸项目,以使它们适合父元素,但不适合宽度,而是适合高度。因为它们的宽度是由flex属性定义的;
使用flex: 1 1 auto;
使元素适合其父元素。
有关更多详细信息,请参见https://css-tricks.com/snippets/css/a-guide-to-flexbox/。