zoukankan      html  css  js  c++  java
  • flex均匀布局

    介绍:

    felx布局属于弹性布局的一种,主要作用是页面布局不因终端的尺寸发生变形,以前一直使用bootstrap的栅格系统去实现;前两天组里培训了flex,记录以下内容加深理解。

    背景:

    我要实现一个容器内的子元素平均分布在容器内,并且在容器宽度变化时,子元素可以换行并且依然均匀分布。效果如下:

    元素结构

    <div class="container">
            <span class="bg_red"></span>
            <span class="bg_green"></span>
            <span class="bg_black"></span>
            <span class="bg_blue"></span>
            <span class="bg_pink"></span>
        </div>

    简单实现:

    通过父元素的text-aligin:justify,子元素inline-block;代码如下:

    .container {
        text-align: justify;
       background:rgb(42, 157, 165) } .container > span { display: inline-block; font-size: 2em; height: 5em; 5em; }

    效果如下:

    完蛋,效果未完成,css应该没有问题,坑在这里:我的子元素数量是5个,但是填不满父元素的宽度;如果我的子元素能够多起来的话,效果应该就会出来了,如下图:

     

    注意上图的第一行与第二行的变化:第一行的子元素实现了平均分布在容器内,但第二行的子元素还是默认的text-align:left效果,只有当第二行沾满父元素容器时才会均匀分布,如下:

    综上所述,虽然text-align:justify; display:inline-block 可以实现均匀分布;但是对于元素的数量有限制;实用性低。

    主角登场:

    应用flex属性实现任意元素均匀分布在父元素内:

    .container {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-around;
         background:rgb(42, 157, 165) } .container > span { display: inline-block; font-size: 2em; height: 5em; 5em; }

    效果如下:

    可以看到,任意个数的子元素都可以在父元素中均匀分布。

    浏览器支持情况:

    关于flex属性的详细介绍,移步我优秀同事的文章https://www.cnblogs.com/loveyt/p/10385516.html

  • 相关阅读:
    空指针的问题,感觉自己很傻
    在运行微服务架构的时候报错error creating bean h name 'advisor'.. Unsatisfied dependency..constructor argument with index 0...
    hibernate+oracle+主键varchar2类型,增加序列策略注解失败
    hibernate的报错异常
    7777端口的问题
    soapUI模拟发送json数据时,遇到的中文编码问题
    三、数组的使用
    四、内存中的数组
    一、初步认识数组
    二、数组的初始化
  • 原文地址:https://www.cnblogs.com/pandapeter/p/10422812.html
Copyright © 2011-2022 走看看