• CSS(十)-- 弹性盒子


    1.弹性盒简介

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

    1.1弹性容器

    • 要使用弹性盒,必须先将一个元素设置为弹性容器

    通过display来设置弹性容器

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

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

    • 可选值:

      • colum:纵向排列(上 向 下)
      • colum-reverse:反方向纵向排列(下 向 上)
      • row(默认值):横向排列(左 向 右)
      • row-reverse:弹性容器在容器中反向水平排列(右 向 左)
    • 主轴:弹性元素的排列方向称为主轴

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

    ul{
          width:500px;
          border:10px red solid;
          display:flex;
          flex-direction:row;
    }
    

    1.2弹性元素

    • 弹性容器的子元素(直接子元素)是弹性元素(弹性项)
    • 一个元素可以同时是弹性容器和弹性元素

    弹性元素的属性:

    flex-grow: 指定弹性元素的伸展的系数

    注意这里边的比例是对剩余的空白部分分配的比例,不包括元素本身

    • 当父元素有多余空间时,子元素如何伸展
    • flex-grow:1;伸展
    • flex-grow:0(默认值)0;不伸展
    • 有多个子元素设置时,按比例伸展
    • 只能放在子元素中
    • 放在子元素中可以设置伸展的比例
    依次按1:2:3比例分配
    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;
    }
    

    flex-shrink 指定弹性元素的收缩系数

    • 当父元素中的空间不足以容纳所有的子元素时,如何对子元素进行收缩
      用法和flex-grew相同

    1.3 弹性盒子应用

    <!DOCTYPE html>
    <html lang="zh">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <link rel="stylesheet" href="./css/reset.css">
        <style>
            ul{
                 1210px;
                height: 48px;
                display: flex;
                flex-direction: row;
         
                background-color: #e8e7e3;
                margin: 0 auto;
            }
            li{
                flex-grow: 1;
                text-align: center;
            }
            ul a{
                display: block;
                text-decoration: none;
                color: #808080;
                line-height: 48px;
                font-size:16px
               
            }
            li a:hover{
                color:#e8e7e3;
                background-color:#808080;
            }
    
    
            
        </style>
    </head>
    <body>
        <ul class="nav">
            <li><a href="#">HTML/CSS</a></li>
            <li><a href="#">Browser Side</a></li>
            <li><a href="#">Server Side</a></li>
            <li><a href="#">Programming</a></li>
            <li><a href="#">XML</a></li>
            <li><a href="#">Web Building</a></li>
            <li><a href="#">Reference</a></li>
        </ul>
    </body>
    </html>
    

    2.弹性盒子上的样式

    flex-wrap:设置弹性远古三是否在弹性容器自动换行

    可选值:

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

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

    flex-flow:row wrap;
    

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

    可选值:

    • flex-start:元素沿着主轴的起边(start)排列
    • flex-end:元素沿着主轴的终边(end)排列
    • center:元素居中排列
    • space-around:空白分布到元素两侧
    • space-evenly:空白分布到元素的单侧
    • space-between:把距离分配到元素中间

    align-items:元素在辅轴上的表现

    • stretch(默认值):将元素的长度设置为相同的值

      6种颜色的高度是一样的

    • flex-start:元素不会拉伸,沿着辅轴起边对齐,高度自适应

    • flex-end:元素不会拉伸,沿着辅轴终边对齐,高度自适应

    -center:- flex-end:元素不会拉伸,居中,高度自适应

    -baseline:基线对齐

    align-content:辅轴空白空间的分布

    • center:
    • flex-start
    • flex-end
    • space-around
    • space-between

    align-self:stretch

    3.弹性元素上的样式

    flex-grow:弹性的增长系数

    注意这里边的比例是对剩余的空白部分分配的比例,不包括元素本身

    flex-grow:弹性元素的缩减系数

    • 缩减系数的计算方式比较复杂
    • 缩减多少是根据缩减系数和元素大小来计算的

    flex-basis:

    元素基础长度

    • 指定的是元素在主轴上的基础长度
    • 如果主轴是横向的则该值指定的就是元素的高度
    • 如果主轴是纵向的则该值指定的就是元素的高度
    • 默认值是auto,表示参考元素自身的高度
    • 如果传递了一个具体的数值,则以该值为准

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

    • flex:增长 缩减 基础
    • flex具有默认值:
      • initial "flex:0 1 auto"
      • auto: "flex:1 1 auto"
      • none: "flex:0 0 auto" 弹性元素没有弹性

    order:指定弹性子元素的排列顺序

    order:3
    数值越大越在前面

  • 相关阅读:
    Docker contanier comunication with route
    Event Sourcing
    Event Sourcing
    Event Sourcing
    .Net async
    安装Docker
    【JQuery】数据
    【JQuery】遍历
    【JQuery】css操作
    【JQuery】文档操作
  • 原文地址:https://www.cnblogs.com/psyduck/p/14347601.html
Copyright © 2020-2023  润新知