CSS 之 flex 布局

2017-08-09  本文已影响21人  Look_a_Look

Flexbox布局方式可以实现自动调整、计算子元素在任意父容器内的布局和大小。
声明一个Flex容器(Flex Container),其子元素为Flex项目(Flex Items)

display:flex  或者  display:inline-flex
Flex容器有如下属性

Flex项目的排列方向:行(水平)、列(垂直)或者行和列的反向,注意:改变方向会改变 Main-Axis 和 Cross-Axis 指向(Main-Axis为当前方向)

flex-direction : row || column || row-reverse || column-reverse;  默认是 row

Flex 项目换行排列

flex-wrap : wrap || nowrap || wrap-reverse;  默认是 nowrap

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

flex-flow : row wrap;

justify-content 控制Flex容器内整体在垂直方向上的排列方式。左、右、居中、两端。

justify-content : flex-start || flex-end || center || space-between || space-around

align-items 控制Flex项目的水平对齐方式。拉伸、顶部、尾部、居中对齐。

align-items : stretch || flex-start || flex-end || center || baseline

align-content 控制Flex容器内整体在水平方向上的排列方式。拉伸、开始、结束、居中。

align-content : stretch || flex-start || flex-end || center;
Flex项目有如下属性

order 可以指定Flex项目的顺序

order 可以接受一个数字,负数或0或整数,越大顺序越靠后

flex-grow 控制Flex项目是否自动填充容器的空余部分

flex-grow 为0或一个正数,默认为 0,不填充。填充宽度会按占所有flex-grow总和的比例来计算。

flex-shrink 控制Flex项目在容器没有额外空间时是否折叠

flex-shrink 为0或一个正数,默认是1,会折叠

flex-basis 属性可以指定Flex项目的初始大小。

flex-basis  支持任何单位,当数值为0时也要写明单位。默认是 auto

flex 是flex-grow、flex-shrink和flex-basis三个属性的简写

flex: 0 1 auto;   默认值
----
flex: 1 1;  在flex中,flex-basis 默认值为 0, 绝对flex项目(项目宽度根据 flex 属性 来确定,与内容大小无关)
----
flex-basis : 150px;只有当你设置了,相对flex项目(项目宽度根据 内容大小 来确定)
---
flex: 0 0 auto;  相当于  flex: none;
---
flex: 1 1 auto;  相当于  flex: auto;

align-self 改变弹性项目沿着侧轴的位置,而不影响相邻的弹性项目

align-self: auto || flex-start || flex-end || center || baseline || stretch

margin 对齐

当在一个Flex项目上使用自动外边距(margin: auto)时,justify-content 属性就不起作用了

参考网站:http://www.w3cplus.com/css3/understanding-flexbox-everything-you-need-to-know.html

练习代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
    ul {
        display: flex;
        flex-wrap: wrap;
    }
    
    li {
        margin: 5px;
        /*width: 200px;*/
        /*height: 200px;*/
        /*flex-grow: 0;*/
        /*flex-shrink: 1;*/
        flex-basis: 100px;
        list-style: none;
        background-color: #337C7E;
    }
</style>

<body>
    <ul>
        <li> This is just some random text  to buttress the point being explained.
    Some more random text to buttress the point being explained.I am a simple list 1</li>
        <li>I am a simple list 2</li>
        <li>I am a simple list 3</li>
        <li>I am a simple list 4</li>
        <li>I am a simple list 5</li>
    </ul>
</body>

</html>
上一篇下一篇

猜你喜欢

热点阅读