align-self

align-self 会对齐当前 flex 行中的 flex 元素,并覆盖align-items

 

语法

align-self: auto | flex-start | flex-end | center | baseline | stretch

描述
auto将计算为其父元素的align-items值,或者为stretch如果没有父元素的话。
flex-star规定元素向侧轴起点对齐。
flex-end规定元素向终点对齐。
center规定元素在侧轴居中。如果元素在侧轴上的高度高于其容器,那么在两个方向上溢出距离相同。
baseline规定所有元素向基线对齐。侧轴起点到元素基线距离最大的元素将于侧轴起点对齐以确定基线。
stretch规定弹性元素被在侧轴方向被拉伸到容器相同的高度或宽度。

例子

HTML

<ul class="flex-container">
  <li class="flex-item flex-start">1</li>
  <li class="flex-item flex-end">2</li>
  <li class="flex-item center">3</li>
  <li class="flex-item baseline">4</li>
  <li class="flex-item stretch">5</li>
</ul>

CSS

.flex-container {
  padding: 0;
  margin: 0;
  list-style: none;
  height: 200px;
  
  -ms-box-orient: horizontal;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -moz-flex;
  display: -webkit-flex;
  display: flex;
}
.flex-start {
  align-self: flex-start; //规定元素向侧轴起点对齐。
}
.flex-end {
   align-self: flex-end;//规定元素向终点对齐。 
}
.center { 
  align-self: center;//规定元素在侧轴居中。如果元素在侧轴上的高度高于其容器,那么在两个方向上溢出距离相同。
}
.baseline {
  align-self: baseline;//规定所有元素向基线对齐。侧轴起点到元素基线距离最大的元素将于侧轴起点对齐以确定基线。 
}
.stretch {
  align-self: stretch;//规定弹性元素被在侧轴方向被拉伸到容器相同的高度或宽度。
}
.flex-item {
  background: tomato;
  padding: 5px;
  width: 100px;
  margin: 5px;
  line-height: 100px;
  color: white;
  font-weight: bold;
  font-size: 2em;
  text-align: center;
}

执行结果

  • 1
  • 2
  • 3
  • 4
  • 5