zoukankan      html  css  js  c++  java
  • 第 29 章 CSS3 弹性伸缩布局[下]

    学习要点:

    1.新版本

    主讲教师:李炎恢

    本章主要探讨 HTML5 中 CSS3 提供的用来实现未来响应式弹性伸缩布局方案,这里做一个初步的了解。

    一.新版本

    新版本的 Flexbox 模型是 2012 年 9 月提出的工作草案,这个草案是由 W3C 推出的最新语法。这个版本立志于指定标准,让新式的浏览器全面兼容,在未来浏览器的更新换代中实现了统一。

    首先,设置伸缩盒的 display 有如下两个属性值:

    属性值

    说明

    flex

    将容器盒模型作为块级弹性伸缩盒显示(新版本)

    inline-flex

    将容器盒模型作为内联级弹性伸缩盒显示(新版本)

    //大部分不需要前缀

    div {
        display: flex;
    }

    属性

    IE

    Firefox

    Chrome

    Opera

    Safari

    带前缀

    21 ~ 28

    7.0

    不带前缀

    11+

    20+

    29+

    12.1

     从这张表可以看出,只有 webkit 引擎的浏览器 Chrome 和 Safari 的版本需要添加-webkit-,而 Chrome 浏览器 29 版本以后可以省略了。

    1.flex-direction

    flex-direction 属性和旧版本 box-orient 属性一样,都是设置伸缩项目的排列方式。

    //设置从上往下排列 

    div {
        flex-direction: column;
    }

    属性值

    说明

    row

    设置从左到右排列

    row-reverse

    设置从右到左排列

    column

    设置从上到下排列

    column-reverse

    设置从下到上排列

    2.flex-wrap

    flex-wrap 属性类似与旧版本中的 box-lines,但是 box-lines 我们没有讲解,原因是没有浏览器支持它。

    //设置无法容纳时,自动换行 

    div {
        -ms-flex-wrap: wrap;
    }

    属性值

    说明

    nowrap

    默认值,都在一行或一列显示

    wrap

    伸缩项目无法容纳时,自动换行

    wrap-reverse

    伸缩项目无法容纳时,自动换行,方向和 wrap 相反

    3.flex-flow

    flex-flow 属性是集合了排列方向和控制换行的简写形式。

    //简写形式

    div {
        flex-flow: row wrap;
    }

    4.justify-content

    justify-content 属性和旧版本中的 box-pack 一样,设置伸缩项目的对其方式。

    //按照中心点对齐 

    div {
        justify-content: space-around;
    }

    属性值

    说明

    flex-start

    伸缩项目以起始点靠齐

    flex-end

    伸缩项目以结束点靠齐

    center

    伸缩项目以中心点靠齐

    space-between

    伸缩项目平局分布

    space-around

    同上,但两端保留一半的空间

    5.align-items

    align-items 属性和旧版本中的 box-align 一样,处理伸缩项目容器的额外空间。

    //处理额外空间 

    div {
        align-itmes: center;
    }

    属性值

    说明

    flex-start

    伸缩项目以顶部为基准,清理下部额外空间

    flex-end

    伸缩项目以底部为基准,清理上部额外空间

    center

    伸缩项目以中部为基准,平均清理上下部额外空间

    baseline

    伸缩项目以基线为基准,清理额外的空间

    stretch

    伸缩项目填充整个容器,默认

    6.align-self

    align-self 和 align-items 一样,都是清理额外空间,但它是单独设置某一个伸缩项目的。所有的值和 align-itmes 一致。

    //单独设置清理额外空间

    p:nth-child(2) {
        align-self: center;
    }

    7.flex

    flex 属性和旧版本中的 box-flex 类似,用来控制伸缩容器的比例分配。

    //设置比例分配 

    p:nth-child(1) {
        flex: 1;
    }
    
    p:nth-child(2) {
        flex: 3;
    }
    
    p:nth-child(3) {
        flex: 1;
    }

    8.order

    order 属性和 box-ordinal-group 属性一样控制伸缩项目出现的顺序。

    //设置伸缩项目顺序

    p:nth-child(1) {
        order: 2;
    }
    
    p:nth-child(2) {
        order: 3;
    }
    
    p:nth-child(3) {
        order: 1;
    }
  • 相关阅读:
    【leetcode】1020. Partition Array Into Three Parts With Equal Sum
    【leetcode】572. Subtree of Another Tree
    【leetcode】123. Best Time to Buy and Sell Stock III
    【leetcode】309. Best Time to Buy and Sell Stock with Cooldown
    【leetcode】714. Best Time to Buy and Sell Stock with Transaction Fee
    【leetcode】467. Unique Substrings in Wraparound String
    【leetcode】823. Binary Trees With Factors
    【leetcode】143. Reorder List
    【leetcode】1014. Capacity To Ship Packages Within D Days
    【leetcode】1013. Pairs of Songs With Total Durations Divisible by 60
  • 原文地址:https://www.cnblogs.com/zfc2201/p/5450677.html
Copyright © 2011-2022 走看看