对于CSS的“align-items”,“flex-start”和“stretch”有何不同?

问题描述 投票:0回答:2

flex-start
属性的
stretch
align-items
值有何不同?

.container {
  height: 500px;
  padding: 10px;
  margin: 50px auto;
  background: #eee;
  display: flex;
  align-items: flex-end
}

.container .box {
  padding: 10px;
  width: 200px;
  height: 200px;
  background-color: #fff;
}
<div class="container">
  <div class="box"></div>
</div>

html css flexbox
2个回答
2
投票

如果您为元素设置高度,您将不会看到任何差异。

伸展

Flex 项目被拉伸,使得项目边距框的交叉尺寸与线相同 同时遵守宽度和高度限制。ref

在您的情况下,由于您设置的高度,拉伸不会发生任何事情。

弹性启动

弹性项目的交叉起始边距边缘与线的交叉起始边缘齐平。 参考

这只是将项目对齐到顶部。同样,视觉上不会发生任何事情,因为它在某种程度上是默认行为(不是默认值)

.container {
  display:inline-flex;
  width:200px;
  height:200px;
  border:2px solid;
}

.container > span {
  width:100px;
  height:100px;
  background:red;
}
<div class="container" style="align-items:flex-start">
  <span></span>
</div>
<div class="container" style="align-items:stretch">
  <span></span>
</div>

现在删除高度限制,您将看到差异:

.container {
  display:inline-flex;
  width:200px;
  height:200px;
  border:2px solid;
  vertical-align:top;
}

.container > span {
  width:100px;
  min-height:100px;
  background:red;
}
<div class="container" style="align-items:flex-start">
  <span></span>
</div>
<div class="container" style="align-items:stretch">
  <span></span>
</div>


-1
投票
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Hashis</title>
    <style>
        *{
            box-sizing: border-box;
            padding: 0;
            margin: 0;  
        }
        .parrent{
            display: flex;
            height: 300px;
            border: 2px solid black;
            align-items: flex-start;
            /* align-items: stretch; */
            background-color: aqua;
            
        }
        .child1{
        border: 2px solid black;
        background-color: rgb(20, 246, 61);
        width: 200px;
        }
        .child2{
        border: 2px solid black;
        background-color: skyblue;
        width: 200px;
        }
        
    </style>
</head>
<body>
<div class="parrent">
    <div class="child1"></div>
    <div class="child2"></div>  
</div>
</body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.