flex布局

    xiaoxiao2022-07-03  160

    <div class="box"> <span class="item"></span> </div> css .box { display: flex; justify-content: center; // mian 轴 x align-items: center; //cross 轴 y }

    .box { display: flex; flex-direction: column; justify-content: space-between; align-items: center; }

    <div class="box"> <div class="row"> <span class="item"></span> <span class="item"></span> <span class="item"></span> </div> </div> .box { display: flex; } .item:nth-child(2) { align-self: center; } .item:nth-child(3) { align-self: flex-end; }

    HTML代码如下。

    <div class="box"> <div class="row"> <span class="item"></span> <span class="item"></span> <span class="item"></span> </div> <div class="row"> <span class="item"></span> </div> <div class="row"> <span class="item"></span> <span class="item"></span> </div> </div>

    CSS代码如下。

    .box { display: flex; flex-wrap: wrap; } .row{ flex-basis: 100%; display:flex; } .row:nth-child(2){ justify-content: center; } .row:nth-child(3){ justify-content: space-between; }

     

    圣杯布局

    HTML代码如下。

    <body class="HolyGrail"> <header>...</header> <div class="HolyGrail-body"> <main class="HolyGrail-content">...</main> <nav class="HolyGrail-nav">...</nav> <aside class="HolyGrail-ads">...</aside> </div> <footer>...</footer> </body>

    CSS代码如下。

    .HolyGrail { display: flex; min-height: 100vh; flex-direction: column; } header, footer { flex: 1;//相当于flex:1 1 1; 放大属性 缩小属性 项目长度 } .HolyGrail-body { display: flex; flex: 1; } .HolyGrail-content { flex: 1; } .HolyGrail-nav, .HolyGrail-ads { /* 两个边栏的宽度设为12em */ flex: 0 0 12em; } .HolyGrail-nav { /* 导航放到最左边 */ order: -1; }

    如果是小屏幕,躯干的三栏自动变为垂直叠加。

    @media (max-width: 768px) { .HolyGrail-body { flex-direction: column; flex: 1; } .HolyGrail-nav, .HolyGrail-ads, .HolyGrail-content { flex: auto; } }

     

      justify-content: center;  // mian 轴  x

    flex-start(默认值):左对齐flex-end:右对齐center: 居中space-between:两端对齐,项目之间的间隔都相等。space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

      align-items: center;      //cross 轴  y

    flex-start:交叉轴的起点对齐。flex-end:交叉轴的终点对齐。center:交叉轴的中点对齐。baseline: 项目的第一行文字的基线对齐。stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

    align-content属性

    多条x轴 即转行

    align-content: flex-start | flex-end | center | space-between | space-around | stretch;

    排序顺序    order: <integer>; /* default 0 */

    放大比例    flex-grow: <number>; /* default 0 */

    缩小比例    flex-shrink: <number>; /* default 1 */

    项目大小    flex-basis: <length> | auto; /* default auto */

    flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] 默认值为0 1 auto。

     flex: 1; //相当于flex:1 1 1; 放大属性 缩小属性 项目长度

    flex-basis -->width --> content

     

     

     

     

     

     

    最新回复(0)