微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

移动端布局3

4.弹性盒模型

4.1.什么是弹性盒模型

css3引入了一种新的布局模式,叫做FlexBox布局,即伸缩布局和(Flexible Box)模型,很多地方又称为弹性盒模型,我们下面都叫弹性盒模型,它可以用来提供一个更加有效的方式制定、调整和分布一个容器里的项目布局

css中的布局方式总结:

块布局 
行内布局
表格布局
定位布局
FlexBox布局(css3新引入)

4.2.掌握FlexBox模型中的术语

1.主轴和侧轴

主轴和侧轴你可以简单的理解为水平和垂直方向上的两根轴,类似x轴和y轴,认情况下主轴是水平方向的,但是可以设置,将主轴设置成垂直方向,主轴外的另一轴就是侧轴

2.伸缩容器和伸缩项目

伸缩容器就是通过display属性设置为flex或者inline-flex的容器(盒子),伸缩项目就是这个伸缩容器下面的子元素

4.3.新版本和老版本

FlexBox布局语法规范主要分为三种:

旧版本:2009年版本,使用display:Box或者display:inline-Box

混合版本: 2011年版本,使用display:flexBox 或者display:inlne-flexBox

最新版本: 使用display:flex 或者 display:inlne-flex

查看FlexBox兼容性支持情况

https://caniuse.com/#search=flexbox

4.4.flex初体验

<!DOCTYPE html>
<html lang="en">
  <head>
    <Meta charset="UTF-8" />
    <Meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <Meta ="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <style>
      .Box {
        height: 100px;
        background-color: green;
        display: flex;
      }
      .Box div {
        height: 80px;
        width: 80px;
        margin: auto;
        background-color: orangered;
      }
    </style>
  </head>
  <body>
    <div class="Box">
      <div class="Box-item_1">1</div>
      <div class="Box-item_2">2</div>
      <div class="Box-item_3">3</div>
      <div class="Box-item_4">4</div>
    </div>
  </body>
</html>

4.5.新版本弹性盒模型

容器上相关属性

1.设置主轴

display: flex;
/* 设置主轴为水平 */
/* flex-direction: row; */
/* 设置主轴方向为垂直 */
flex-direction: column;

2.设置项目排序方向

/*
使用flex-direction来设置主轴和项目的排序方向
flex-direction:有四个值,分别是row(水平正方向)、row-revers(水平反方向)、column(垂直正方向)、column-revers(垂直反方向)
*/
flex-direction: column-reverse;

总结:伸缩项目总是沿着主轴正方向排列

3.对齐方式

先说富裕空间概念,富裕空间字面上理解就是多余的空间,也就是子元素排列后剩下的空间,不管是主轴还是侧轴上都有富裕空间这个概念

新版本

/*
主轴 justify-content: 5个选项值
   flex-start: 项目位于容器的开头,富裕空间在后
   flex-end: 富项目位于容器的结尾, 富裕空间在前
   center: 项目位于容器的中心,富裕空间在两边
   space-between: 富裕空间在项目之间
   space-around: 项目位于各行之前、之间、之后都留有空白的容器内。富裕空间在项目前后都有
*/
display: flex;
justify-content: flex-end;
/*
侧轴  align-items: 5个选项值
flex-start: 元素位于容器的开头(起点对齐(
flex-end: 元素位于容器的结尾(终点对齐)
center:元素位于容器的中心。(居中对齐)
baseline: 元素位于容器的基线上(基线对齐)
stretch: 认值。元素被拉伸以适应容器 
*/
display: flex;
justify-content: flex-end;
align-items: baseline;

4.伸缩换行

/*
no-wrap: 单行显示
wrap: 多行显示
wrap-reverse:多行显示,排列顺序和wrap相反
*/
flex-wrap: wrap;

5.伸缩流方向与换行flex-flow

6.堆栈伸缩行

伸缩项目上的相关属性

1.伸缩性flex

2.显示顺序order

4.6.老版本弹性盒模型

容器上相关属性

1.设置主轴

display: -webkit-Box;
/* 设置主轴为水平 */
/* -webkit-Box-orient: horizontal; */
/* 设置主轴为垂直 */
-webkit-Box-orient: vertical;

2.设置项目排序方向

/*认正方向: normal, 反方向为reverse*/
-webkit-Box-direction: reverse;

3.对齐方式

/*
主轴:
-webkit-Box-pack
  start:起点对齐
  end: 终点对齐
  center:居中对齐
  justify: 两边对齐
*/
/*
侧轴:
-webkit-Box-align
  start:起点对齐
  end: 终点对齐
  center:居中对齐
  justify: 两边对齐
*/

螺钉课堂视频课程地址:http://edu.nodeing.com

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐