CSS弹性盒

弹性盒(又叫伸缩盒)

介绍

  • 弹性盒使用flex属性,flex是css中的又一种布局,主要来代替浮动来完成页面的布局。

作用:

  • flex可以使元素具有弹性,让元素可以随页面的大小的改变而改变
  1. 弹性容器

要使用弹性盒,必须先将一个元素设置为弹性容器

方式:

  • 通过display来设置弹性容器
  • display:flex 设置为块级弹性容器
  • display:inline-flex 设置为行内弹性容器
  1. 弹性元素

弹性容器的子元素是弹性元素(也叫弹性项),一个元素可以同时设置为弹性容器和弹性元素。

例如:

<ul>
    <li>1<div>2</div></li>
    <li>3</li>
    <li>4</li>
</ul>

解析:如果将ul设置为弹性容器,那么li是弹性元素,div不是弹性元素,因为div是ul的后代元素,不是子元素

  1. 主轴

弹性元素的排列方向称为主轴

  1. 侧轴

与主轴垂直方向的称为侧轴


弹性属性

  1. flex-direction:指定弹性元素的排列方式(给弹性容器设置)

可选值:

  • row:默认值,弹性元素在容器中水平自左向右排列,主轴:自左向右
  • row-reverse:弹性元素在水平方向自右向左排列,主轴:自右向左
  • column:弹性元素自上向下排列,主轴:自上向下
  • column-reverse:弹性元素自下向上排列,主轴:自下向上

  1. flex-grow:指定弹性元素的伸展系数

作用:
当父元素有多余的空间时,子元素如何伸展,父元素的剩余空间,会按照比例进行分配。

例如:
请添加图片描述
请添加图片描述

  1. flex-shrink:指定弹性元素的收缩系数

作用:
当父元素的空间不足以容纳所有的子元素时,对子元素进行收缩

弹性容器的样式

flex-wrap:设置弹性元素是否在弹性容器中自动换行

可选值:

  • nowrap:默认值,元素不会自动换行
  • wrap:元素沿着辅轴方向自动换行
  • wrap-reverse:元素沿着辅轴反方向换行

wrap案例
html代码:

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>

css代码及效果

请添加图片描述

flex-flow:wrap和direction的简写属性,同时设置方向和是否换行
例如:

flex-flow: row wrap;

justify-content:如何分配主轴上的空白空间(主轴上的元素如何排列)

可选值:

  • flex-start:元素沿着主轴起边排列
  • flex-end:元素沿着主轴终边排列
  • center:元素居中排列
  • space-around:空白分布到元素两侧
  • space-evenly:空白分布到元素的单侧
  • space-between:空白均匀分布到元素间
    请添加图片描述
    请添加图片描述

align-items:元素在辅轴上如何对齐,设置的是元素间的关系

可选值:

  • stretch:默认值,将元素的长度设置为相同的值(行与行之间的高度)
  • flex-start:元素不会拉伸,沿着辅轴起边对齐
  • flex-end:元素不会拉伸,沿着辅轴终边对齐
  • center:居中对齐
  • baseline:基线对齐

请添加图片描述

设置元素处在居中位置:

justify-content: center;
    align-items: center;

请添加图片描述

align-content:辐轴空白空间的分布
可选值:

  • center:空白分布在上下两边
  • flex-start:空白分布在起边下方
  • flex-end:空白分布在终边上方
  • space-around:空白分布到元素两侧
  • space-evenly:空白分布到元素的单侧
  • space-between:空白均匀分布到元素间

例如:
请添加图片描述

align-self:用来覆盖当前元素上的align-items(设置当个元素)

例如:
请添加图片描述
请添加图片描述

弹性元素的样式

属性值

  • flex-grow:弹性元素的增长系数(与弹性容器flex-grow相同)
  • flex-shrink:弹性元素的缩减系数(与弹性容器flex-shrink相同)
  • flex-basis:元素在主轴上的基础长度,如果主轴是横向的,则该值指定的是元素的宽度,如果主轴是纵向的,则该值指定的是元素的高度

flex-basisi注意点:默认值为auto,参考元素自身的高度和宽度,如果传递了一个具体的数据,则以该值为准

例如:

请添加图片描述

简写属性
flex可以设置弹性元素所有的三个样式

顺序如下:
flex: 增长 缩减 基础长度

例如:

flex:1 1 100px

order:决定弹性元素的排列顺序
例如:
请添加图片描述

猜你喜欢

转载自blog.csdn.net/weixin_53912712/article/details/125727157
今日推荐