伸缩布局

伸缩布局

伸缩布局技术主要用在移动端。在PC端的高版本浏览器支持,低版本不支持。在PC端一般不用伸缩布局的方式。

注意嗷:伸缩布局应该在父盒子的样式中设置,设置完后是对子盒子产生影响。

Flex布局

在这里插入图片描述

常用属性在这里插入图片描述

flex-direction

作用:控制主轴方向,水平?垂直?从左往右?从右往左?从上到下?从下到上??

主轴的概念:

一个盒子里如果所有子盒子都是从上往下排列。则认为从上往下的线条称为 主轴。

在这里插入图片描述
同理,一个盒子里的子盒子若都是从左往右排列,则称一条从左到右的线条为 主轴

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-udDWt49v-1587176639699)(伸缩布局.assets/image-20200415221751222.png)]

flex-direction : row | row-reverse | column | column-reverse (设置主轴方向)

flex-direction: row 主轴方向水平向右; row-reverse 方向相反

flex-direction: column 主轴方向竖直向下;column-reverse 方向相反

  • flex-direction: column

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d74iw383-1587176639700)(伸缩布局.assets/image-20200415235413203.png)]

  • flex-direction: column-reverse

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZALJO1Jk-1587176639701)(伸缩布局.assets/image-20200415235312404.png)]

要注意1、2、3块的顺序发生了改变。也就是说,flex-direction会决定盒子分布的起点位置,以及接下来的布局方向。

  • flex-direction: row-reverse

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K2VxESMx-1587176639702)(伸缩布局.assets/image-20200415235915787.png)]

justify-content

取值:flex-start | flex-end | center | space-between | space-around

justify-content用于指定主轴(水平方向)上flex子项的对齐方式

用主轴确定了盒子布局的起点后,就可以用justify-content来确定盒子之间的相对位置。

父级盒子已经display: row; flex-direction: row;

  • justify-content: flex-start默认值,表示与主轴的起始位置对齐

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rcz4miTn-1587176639703)(伸缩布局.assets/image-20200416002232703.png)]

  • justify-content: flex-end表示与主轴的结束位置对齐

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xdGdP0Mg-1587176639703)(伸缩布局.assets/image-20200416002306239.png)]

  • justify-content: center表示与主轴中间位置对齐

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-phckUeUa-1587176639704)(伸缩布局.assets/image-20200416002148412.png)]

  • justify-content: space-between表示与主轴两端对齐,中间距离间距相等。要注意特殊情况,当剩余空间为负数或者只有一个项时,效果等同于flex-start

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5NSjYzc3-1587176639706)(伸缩布局.assets/image-20200416001932416.png)]

  • justify-content: space-around表示间距相等,中间间距是两端间距的2倍,要注意特殊情况,当剩余空间为负数或者只有一个项时,效果等同于center

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MQMnRbdv-1587176639707)(伸缩布局.assets/image-20200416001604176.png)]

align-items

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iV3qyDY2-1587176639707)(伸缩布局.assets/image-20200416002944424.png)]

取值:stretch(拉伸) | flex-start | flex-end | center | baseline

  • flex-start与侧轴开始位置对齐

  • flex-end与侧轴结束位置对齐

  • center:表示与侧轴中间对齐(justify-content: flex-start;)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J69SuhmN-1587176639708)(伸缩布局.assets/image-20200416091654998.png)]

  • baseline:让所有盒子沿着一条基准线对齐。必须不同盒子的高度不同才能显示出效果。否则看不出来区别。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3H8CAzFG-1587176639708)(伸缩布局.assets/image-20200416091723241.png)]

    flex-wrap

    作用:设置父元素为Flex布局后,可能会出现因为子盒子数量太多而导致子盒子溢出父盒子。这个时候,就可以使用flex-wrap来决定时候解决这个问题。flex-wrap用于指定 Flex 子项是否换行(换列)(注意:在计算机科学中wrap为“换行”的意思,不是“包裹”(参考自有道翻译))

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dIO9GopD-1587176639709)(伸缩布局.assets/image-20200416092202159.png)]

    取值:nowrap | wrap | wrap-reverse

    • nowrap:不换行。默认设置。(为防止子盒子溢出,会强制改变子盒子的宽度(高度)以适应父盒子的宽度(高度))

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vn9SO9Zy-1587176639710)(伸缩布局.assets/image-20200416093529326.png)]

    • wrap:换行。保持子盒子的形状。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iAM5tjRR-1587176639710)(伸缩布局.assets/image-20200416093745303.png)]

      盒子太多的时候会改变盒子之间的外边距

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Daa1gd9Q-1587[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-31QumZf5-1587177134899)(!%5Bimage-20200416093745303%5D%28%E4%BC%B8%E7%BC%A9%E5%B8%83%E5%B1%80.assets/image-20200416093745303.png%29#pic_center)]176639711)(伸缩布局.assets/image-20200416093855436.png)]

    • wrap-reverse:反转子盒子的起始位置[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jIyMtArk-1587176639711)(伸缩布局.assets/image-20200416094126569.png)]

      align-content

      该属性只作用于多行的情况下,用于多行的对齐方式。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gRiMT7NI-1587176639712)(伸缩布局.assets/image-20200416095032499.png)]

      • stretch:默认值,当 Flex 子项未设置高度 或者高度值为auto时,stretch起作用, 将Flex子项高度设置为行高度;

      • flex-start: 表示各行与侧轴开始位置对齐,第一行紧靠侧轴开始边界,之后的每一行都紧靠前面一 行

      • flex-end: 表示各行与侧轴的结束位置对齐,最后行紧靠侧轴结束边界, 之后的每行都紧靠前面一 行

      • center: 表示各行与侧轴中间对齐;

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nKMvOH7D-1587176639713)(伸缩布局.assets/image-20200416101846226.png)]

      • space-between: 表示两端对齐。中间间距相等。要注意特殊情况,当剩余空间为负数时,效果等同于flex start

      • space-around: 表示各行之间间距相等,中间间距是两端间距的2倍。要注意特殊情况,当剩余空间为负数时,效果等同于 center

      align-self

      该属性用来单独指定某 Flex 子项的对齐方式

      取值:auto | flex-start | flex-end | center | baseline | stretch

复合属性 flex

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-phaN8ARf-1587176639714)(伸缩布局.assets/image-20200416102749061.png)]

可以用来做响应式布局,来适应不同页面大小。根据父盒子的大小,子盒子等比缩放。

<body>
    <div id="main_div">
        <div class="item" style="flex: 1; height: 2rem;">div1</div>
        <div class="item" style="flex: 2; height: 4rem;">div2</div>
        <div class="item" style="flex: 3; height: 6rem;">div3</div>
        <div class="item" style="flex: 1; height: 7rem;">div3</div>
        <div class="item" style="flex: 2;height: 8rem;">div3</div>
        <div class="item" style="flex: 4;height: 9rem;">div3</div>
    </div>
</body>

根据 div 标签中的style属性的 flex 设置,main_div 中第一个div 的宽度为一行的 1/ (1+2+3+1+2+4),第二个div宽度为一行的 2/(1+2+3+1+2+4),其他标签宽度以此类推。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VDU9oktj-1587176639714)(伸缩布局.assets/image-20200416103645283.png)]

好处是:当页面大小改变时子盒子的相对宽度不变。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nAyjLJif-1587176639716)(伸缩布局.assets/image-20200416103821377.png)]

(宽度至少要撑起内容啊)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值