zoukankan      html  css  js  c++  java
  • flexbox 弹性盒子布局

    父元素:
    display: -webkit-flex;


    子元素:
    flex:1;(设置占比)

    计算规则: 父元素会将所有子元素的flex 相加求和后,算其子元素比例。


    flex混合划分;
    第一个子元素 100px;
    第二个子元素 flex:2
    第三个子元素 flex:1

    关于不定宽高的水平垂直居中

    解决方案: 

    ① 寻常方法

    父元素 position: relative;

    子元素 position: absolute;

               left: 50%;

               top: 50%;//在父元素基础上,往左往上偏移50%

               -webkit-tranform:translate(-50%,-50%);//自身元素往左往上偏移50%

    ② flexbox版

    父元素  display: -webkit-flex;     //伸缩布局

                 justify-content: center;  //水平居中

                 align-items: center;      //垂直居中

    flexbox 平常属性--父元素可设置的属性

    1) flex-direction  伸缩方向,

    属性值: ① row(水平默认)        ②row-reverse(水平反转)  在水平方向上伸缩时,比例按宽度走;注意:要设置高度,否则无法显示。

                    ③ column (垂直)   ④ column(垂直反转)   在垂直方向上伸缩时,比例就是按高度走;注意: body,父元素 height:100%,否则无法显示。

    2) -webkit-flex-wrap  伸缩超出内容是否换行

    属性值: ① nowrap(不换行,默认)

    举例说明: 父元素    400px  ,有三个子元素其宽度值分别为:100px, 300px , 400px; 明显子元素的宽度和大于父元素,由于父元素设置nowrap属性值后将按1:3:4 比例重新分配400px;

                   ② wrap(换行),仍然以上个例子为主,第三个子元素就会被换行

                   ③ wrap-reverse,将按第二种方式垂直方向上反转

    3) flex-flow : flex-direction flex-wrap ;//是上面两个属性结合在一起编写

    4) justify-content  子元素的横向排版

    属性值: ① flex-start   父元素伸缩开始的方向  //效果等同于 float: left

                    ② flex-end   父元素伸缩结束的方向   //效果等同于 float: right

                    ③ center      父元素居中           

                    ④ space-between   两边对其    //左右两个靠边,中间的根据个数划分再放置中间      

                    ⑤ space-around  根据间距划分(根据子元素个数划分父元素后,再将父元素居中放置)------适合头像排版

    5)align-self  子元素各自的排版(用于子元素的属性)

    详细说明: 用于覆盖Flex容器中的align-items属性,它有和align-items相同的属性值

    6) align-items 父元素统一设置子元素的排版

    7) align-content  父元素设置子元素换行方式

    属性值: ① flex-start 按照原有的高度自动换行

    8) order 排序(用于子元素)

    举例说明: 如果将order:-1,将自动放在最前面

    缺点: 兼容性

    ① IOS 可以使用最新flex布局

    ② android 4.4以下,只能兼容旧版的flexbox布局

    ③ android 4.4以上,可以使用最新的flex布局

    介于兼容性内容,建议使用旧版的flexbox方案,其中属性替换如下:

    新flexbox布局 旧flexbox布局
    display: -webkit-flex display: -webkit-flex-box
    -webkit-flex: 1 -webkit-flex-box: 1
    justify-content:center box-pack: center
    align-items: center box-align: center
  • 相关阅读:
    互斥锁Mutex与信号量Semaphore的区别
    c/c++强制类型转换
    c++中的隐藏、重载、覆盖(重写)
    运算符重载详解
    类的大小
    C++ static、const和static const 以及它们的初始化
    一种隐蔽性较高的Java ConcurrentModificationException异常场景
    Java编码常见的Log日志打印问题
    Java编程常见缺陷汇总(一)
    Java字符串连接的多种实现方法及效率对比
  • 原文地址:https://www.cnblogs.com/sunqq/p/8318955.html
Copyright © 2011-2022 走看看