flex布局详解

目录

flex布局

1.flex 布局原理

2 .flex布局父项常见属性:6个

(1)flex-direction:设置主轴的方向,主轴和侧轴 是可以变换的

(2)justify-content;是设置主轴上子元素的排列方式,使用前一定要确定主轴是哪一个,

(3)flex-wrap :设置子元素是否换行

(4)align-items 设置侧轴上的子元素排列方式(单行)!!!

(5)align-content 设置侧轴上的子元素的排列方式(多行)  

(6)flex-flow 

3. flex布局子项常见属性


flex布局

 学习目标:
    能够说出flex盒子的布局原理
    能够使用flex布局的常用特性

    传统布局:                         flex弹性布局  操作方便 PC端浏览器支持效果差  
    兼容性好
    布局繁琐
    局限性,不能在移动端很好的布局

1.flex 布局原理

 任何一个容器都可以指定为flex布局  用来为盒装模型提供最大的灵活性
    注意:当我们为父元素设为flex布局后,子元素的float,clear和vertical-align属性将失效,子元素                
    自动成为容器,flex项目,大的就容器,小的叫项目

    总结flex原理:就是通过给父盒子添加flex属性,来控制子盒子的位置和排列方式

2 .flex布局父项常见属性:6个


(1)flex-direction:设置主轴的方向,主轴和侧轴 是可以变换的

*默认的主轴是X轴 那么y轴就是侧轴了,我们的元素是跟着主轴来排列的
    flex-direction: row;
    这个不重要
    flex-direction: row-reverse;
    我们可以把主轴设置为y轴 那么x轴就成了侧轴 反转就是-reverse
    flex-direction: column;

(2)justify-content;是设置主轴上子元素的排列方式,使用前一定要确定主轴是哪一个,

    flex-start  从头部开始排列
    flex-end  从尾部开始排列
    center 再主轴居中对齐
    space-around 平分剩余空间
    space-between 先两边贴边,再平分剩余空间

(3)flex-wrap :设置子元素是否换行

    默认是不换行,都在主轴上排列
    默认也就是 nowrap  不换行
    wrap是换行 

(4)align-items 设置侧轴上的子元素排列方式(单行)!!!

    /*默认的是主轴x轴居中*/
    justify-content: center;
    /*我们需要一个侧轴居中*/
    align-items: center;
    /*拉伸子盒子不要给高度*/
    align-items: stretch;
    flex-start 默认值,从上到下
    flex-end从下到上
    center挤在一起居中(垂直居中)
    stretch拉伸子元素不要设置高度

(5)align-content 设置侧轴上的子元素的排列方式(多行)
  

 换行的情况上,在单行上没有效果的
    /*换行*/
    flex-wrap: wrap;
    /*因为有了换行,此时我们侧轴上控制子元素的对齐方式我们用 align-content*/
    /*align-content: flex-start;*/
    居中对齐
    /*align-content: center;*/
    /*贴着上下边沿*/
    align-content: space-between;
    /*上下平分*/
    align-content: space-around;


    注意items和content 两个对比
    content平分剩余空间

(6)flex-flow 

  是flex-direction和flex-wrap属性的符合属性
   flex-flow:column wrap ;合在一起写

3. flex布局子项常见属性

flex子项目占的份数
align-self控制子项自己在侧轴的排列方式
order 属性定义子项的排列顺序(前后顺序)

flex属性定义子项目分配剩余空间,用flex来表示占多少份数
.item {
    flex:<number>;/*default 0*/
}

align-self控制子项自己在侧轴的排列方式
允许单个项目与其它项目由不一样的对齐方式,可覆盖align-self属性
默认值为auto 表示继承父元素的align-items属性,如果没有父元素,则等同于stretch

span:nth-child(2){
    /*设置自己在侧轴上的排列方式*/
    align-self:start-end;
}

order 是越小排列越靠前的
比如 
span:nth-child(2){
    order:-1;
    默认是-1的
}


 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值