学习笔记六flex


flex弹性盒

代替浮动
当想要成一排排列时 用flex
要使用弹性盒必须先设置弹性容器

弹性容器

  1. display:flex;
  2. display:inline-flex;行内弹性容器
弹性容器的属性

写在弹性容器里 和display在一起
1.
flex-direction: row;水平左向右 主轴从左向右
flex-direction: column;纵向 主轴从上向下

注意!!!

column一般用于让元素垂直排列的时候 这时主轴是纵向的 如果想要设置垂直方向的留白 用justity-conten而不是align-content
2.
flex-wrap: wrap;换行
wrap-reverse 循环换行
3.
flex-flow 属性是用于同时设置 flex-direction 和 flex-wrap 属性的简写属性。
flex-flow: row wrap;
4.
justify-content 水平(主轴) 如何分配弹性容器空白

center 值将 flex 项目在容器的中心
flex-start 靠在容器起边
space-around 空白分部到每个元素两侧 此时每个元素中的留白重叠 会不均匀
space-between此时均匀
space-evenly 分部元素的单侧

.flex-container {
  display: flex;
  justify-content: center;
}

align-content 垂直(副轴)分配容器留白空间
用于有多行 每一回行的元素大小不一样那么 这一行的留白怎么分配 若拉伸 一行一样高 若center 在这一行的中间
align-content: stretch;拉伸 占满剩余空间 此时每一行一样高
align-content: center;
6.
align-items 属性用于垂直对齐 flex 项目
align-items: center;

注意!!! align-content是看留白 align-items是看对齐
align-content: center; 上下留白一样多 拉伸元素 元素在中间
align-items: center; 元素以中线对齐 不拉伸元素 留白不一样 元素在中间

6. 居中!!!

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

不能用align-cuntent 会拉伸元素
弹性项目在弹性盒里面居中


关于 align-items和align-content

1. align-items
  • 属性可以应用于所有的flex容器,它的单位 是每个flex子项 用于设置元素在垂直方向的对齐方式
  • 默认为顶部对齐
  • 当单行且没有设置高度时center会 高度为最高子项的高度,在一行的所有子项全都在交叉轴上居中对齐(留白不均匀)
  • 当单行设置高度时 会在高度上对齐
  • 当多行没有设置高度时 每一行都以最高项对齐
  • 当多行设置了高度时 平均分成两行 每一行内部对齐
2. align-content

属性是将flex子项作为一个整体起作用,它的基本单位是子项构成的行,只在两种情况下有效果:①子项多行且flex容器高度固定 ②子项单行,flex容器高度固定且设置了flex-wrap:wrap;(哪怕单行因为换行也认为是多行了)

  • 多行没有高度 会以最大为高度 没有留白所以不起效
  • 多行高度固定 设置center
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qiL0fbKK-1652877978492)(https://note.youdao.com/favicon.ichttps://img-blog.csdnimg.cn/20190304213024271.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NjMTg4Njg4NzY4Mzc=,size_16,color_FFFFFF,t_70o)]
  • 单行设置wrap且有高度
    image

弹性元素

弹性容器的 子元素 不是后代元素
一个元素可以是弹性容器和弹性元素

弹性元素的属性

1
flex-grow 在弹性容器中有剩余的部分弹性项目增长多少
flex-grow: 8;没有单位 比其他的快8倍
flex-grow: 1;每个元素都一样大的占满容器
默认为0
2.
flex-shrink 属性规定某个 flex 项目相对于其余 flex 项目将收缩多少。
默认为0
3.
flex-basis 元素基础的长度
若主轴是横向 长度 纵向 宽度
若有数值了 width height将被覆盖
4.
order 属性规定 flex 项目的顺序。


合着写 flex:1 1 auto;增长 缩减 基础

flex的实例

必须得设置伸展才能有效
flex-flow: row wrap;

当用于移动端时,需要适配屏幕大小

  1. 祖先元素是width:20%每个元素都width:100%
    然后给容器 设置拉伸效果 (只要不是0就行)
    这时容器就会配合网页大小 弹性元素会跟着容器一起变化

    width:20% 在子元素
    flex在容器

  2. 容器宽度100% 子元素flex:auto;

    width:20% 在容器
    flex在子元素

这种情况不太常用 因为这样子元素会太大

  1. 在移动端中要实现左右滑动
.wrapper{
    display:flex;
    overflow:auto;
    
}
.yuansu{
    flex:none;
}

当容器的大小固定或与屏幕同宽 且没有设置flex-direction时 容器将不会撑开
而元素默认不会放大会缩小 所以此时设置 flex:none 使元素不会缩小 这时候元素就会横向排列 并且溢出屏幕 再设置溢出滚动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值