使用flex-box时如何水平拉伸元素

时间:2018-11-07 12:40:27

标签: css3 web flexbox

我正在尝试水平拉伸内部对象,以便它们填充容器的宽度。

这是我的代码:

<!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;

如何也拉伸这些元素的宽度

2 个答案:

答案 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/