zoukankan      html  css  js  c++  java
  • 弹性盒子 flex

    flex 介绍

    flex(弹性盒、伸缩盒)
    是CSS中的又一种布局手段,它主要用来代替浮动来完成页面的布局
    flex可以使元素具有弹性,让元素可以跟随页面的大小的改变而改变

    弹性容器

    要使用弹性盒,必须先将一个元素设置为弹性容器
    我们通过 display 来设置弹性容器

    • display:flex 设置为块级弹性容器
    • display:inline-flex 设置为行内的弹性容器

    弹性元素

    • 弹性容器的子元素是弹性元素(弹性项)
    • 弹性元素可以同时是弹性容器

    属性

    思维导图

    flex 思维导图

    弹性容器属性

    flex-direction

    flex-direction 指定容器中弹性元素的排列方式

    主轴:
    弹性元素的排列方向称为主轴

    侧轴:
    与主轴垂直方向的称为侧轴

    可选值:

    • row 默认值,弹性元素在容器中水平排列(左向右)
      主轴 自左向右
    • row-reverse 弹性元素在容器中反向水平排列(右向左)
      主轴 自右向左
    • column 弹性元素纵向排列(自上向下)
    • column-reverse 弹性元素方向纵向排列(自下向上)

    flex-wrap

    flex-wrap 设置弹性元素是否在弹性容器中自动换行

    可选值:

    • nowrap 默认值,元素不会自动换行
    • wrap 元素沿着辅轴方向自动换行
    • wrap-reverse 元素沿着辅轴反方向换行

    flex-flow

    flex-flow 是wrap 和 direction 的简写属性

    flex-flow: row wrap;

    justify-content

    如何分配主轴上的空白空间(主轴上的元素如何排列)

    可选值:

    1. flex-start 元素沿着主轴起边排列
    2. flex-end 元素沿着主轴终边排列
    3. center 元素居中排列
    4. space-around 空白分布到元素两侧
    5. space-between 空白均匀分布到元素间
    6. space-evenly 空白分布到元素的单侧
    7. normal 默认值

    align-content

    如何分配辅轴上的空白空间(辅轴空白空间的分布)

    可选值:和 justify-content 值一样

    align-items

    元素在辅轴上如何对齐
    元素间的关系

    可选值:

    1. stretch 默认值,将元素的长度设置为相同的值
    2. flex-start 元素不会拉伸,沿着辅轴起边对齐
    3. flex-end 沿着辅轴的终边对齐
    4. center 居中对齐
    5. baseline 基线对齐

    justify-items

    元素主轴上如何对齐
    元素间的关系

    可选值:和 align-items 一样

    弹性元素属性

    align-self

    用来覆盖当前弹性元素上的 align-items

    flex-grow

    flex-grow 指定弹性元素的伸展的系数
    默认值为 0

    • 当父元素有多余空间的时,子元素如何伸展
    • 父元素的剩余空间,会按照比例进行分配

    例如

    ul{
        margin: 100px auto;
         800px;
        border: 10px red solid;
        /* 设置ul为弹性容器 */
        display: flex;
    }
    li:nth-child(1){
    flex-grow: 1;
    }
    
    li:nth-child(2){
    background-color: pink;
    flex-grow: 2;
    }
    
    li:nth-child(3){
    background-color: orange;
    flex-grow: 3;
    }
    

    image-20210124171144176

    flex-shrink

    flex-shrink 指定弹性元素的收缩系数
    默认值为 1
    如果为 0 则表示为原大小,不进行收缩

    当父元素中的空间不足以容纳所有的子元素时,如果对子元素进行收缩

    例如

    ul{
        margin: 100px auto;
         300px;
        border: 10px red solid;
        /* 设置ul为弹性容器 */
        display: flex;
    }
    li:nth-child(1){
        flex-shrink: 3;
    }
    
    li:nth-child(2){
        background-color: pink;
        flex-shrink: 2;
    }
    
    li:nth-child(3){
        background-color: orange;
        flex-shrink: 1;
    }
    

    image-20210124171610889

    flex-basis

    flex-basis 指定的是元素在主轴上的基础长度

    • 如果主轴是 横向的 则 该值指定的就是元素的宽度
    • 如果主轴是 纵向的 则 该值指定的是就是元素的高度
    • 默认值auto,表示参考元素自身的高度或宽度
    • 如果传递了一个具体的数值,则以该值为准,也就是覆盖原本的宽/高

    flex

    flex 可以设置弹性元素所有的三个样式

    flex: grow(增长) shrink(缩减) basis(基础);

    给定的一些单个值:

    • initial "flex: 0 1 auto" 元素可以缩小
    • auto "flex: 1 1 auto" 元素可以拉伸也可以缩小
    • none "flex: 0 0 auto" 弹性元素没有弹性

    order

    order 决定弹性元素的排列顺序

    li:nth-child(1){
        /* order 决定弹性元素的排列顺序 */
        order: 2;
    }
    
    li:nth-child(2){
        background-color: pink;
        order: 3;
    }
    
    li:nth-child(3){
        background-color: orange;
        order: 1;
    }
    

    image-20210124175635781

  • 相关阅读:
    46、Spark SQL工作原理剖析以及性能优化
    45、sparkSQL UDF&UDAF
    44、开窗函数及案例
    43、内置函数及每日uv、销售额统计案例
    42、JDBC数据源案例
    41、Hive数据源复杂综合案例
    40、JSON数据源综合案例实战
    39、Parquet数据源之自动分区推断&合并元数据
    Java 的String类
    Java学习之旅基础知识篇:面向对象之封装、继承及多态
  • 原文地址:https://www.cnblogs.com/Liwker/p/14321771.html
Copyright © 2011-2022 走看看