flex布局:flex布局为盒子模型提供了很大的便利性,具有lfex布局的元素成为容器,它的所有子元素成为项目。flex容器默认有两条相交轴,一条水平方向的主轴(main axis),一条垂直方向的交叉轴(cross axis)。水平轴的开始位置叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。默认项目沿主轴排列,在主轴上占的空间叫做main size,在垂直方向的轴叫做cross size。

容器的6个属性:flex-direction、flex-wrap、flex-flow、justify-content、align-content、align-items

flex-direction:属性在主轴上的方向。值为row | row-reverse | column | column-reverse;

flex-wrap:默认情况下,项目在一行排列。这个属性决定当项目在一行排不下时,如何换行。值为:wrap | no-wrap || wrap-reverse

flex-flow:是flex-direction 和flex-wrap的简写。

justify-content:项目在主轴上的对齐方式。值为flex-start | flex-end | center | space-between | space-around

align-items;项目在交叉轴上如何对齐。值为cross-start | cross-end | center | baseline | stretch 

align-content:多根轴线的对齐方式。如果只有一根轴线,此属性不起作用。值为flex-start | flex-end | center | stretch | space-between | space-around

项目的6个属性:order、flex-grow、flex-shrink、flex-basis、flex、align-self

css3的calc()

calc()可以计算不同单位的值,也可以嵌套,不过符号之间一定要有空格,虽然"*"、"/"之间可以没有,建议还是加上空格。例如:width:calc(100% - 30px);

css flex布局实现的响应式九宫格代码以效果图

<!-- css flex布局实现响应式九宫格以及calc()计算表达式的值 -->
<!DOCTYPE html>
<html>
<style>
.blockDiv{
    width: 100%;
    display:flex;
    flex-wrap: wrap;
}
.block{
    width: calc(calc(100% / 3) - 10px);
    margin:5px;
    height:50px;
    box-sizing: border-box;
    border:1px  solid #000;
}
</style>
<body>
   <div class="blockDiv">
        <div class="block"></div>
        <div class="block"></div>
        <div class="block"></div>
        <div class="block"></div>
        <div class="block"></div>
        <div class="block"></div>
        <div class="block"></div>
        <div class="block"></div>
        <div class="block"></div>
    </div>
</body>
</html>

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐