弹性盒子模型详解

Vagor

一、前言

由于W3C在制定弹性盒模型内容有多版草案,在网上浏览了很多视频和文章,版本有新有旧,所以准备写一篇关于弹性盒模型的文章,一是辅助自己学习,二是帮忙其他前端学习者更容易地弹性盒模型。

二、弹性盒模型历史

弹性盒模型历史英文原版或者查看中文翻译版
另外附上w3c css3-flexbox标准文档

弹性盒模型在过去几年间W3C制定了三版草案(规范)。

如果你看到了display:box;或者“box-{*}属性,那么你看的正是2009年版本的Flexbox。

如果你看到了display:flexbox;或者“flex()函数,那么你看的正是2011年版本的Flexbox。

如果你看到了display:flex;flex-{*}属性,那么你查看的是当前(在写此文时)的规范。

本文将以display:flex;书写。

三、兼容性

使用兼容性查询网站Can I Use查询flex

flex-can i use

四、基础知识

  1. 弹性容器(flex container)

  2. 弹性子元素(flex item)

  3. 主轴(弹性子元素沿着主轴方向排列);侧轴(垂直于主轴方向)

  4. 主轴起点(main start);主轴终点(main end);主轴起点(cross start);主轴起点(cross end);

  5. display:flex;为块级弹性元素display:inline-flex;为行内弹性元素
    flex基础知识

五、属性简介

1.弹性容器属性(图中内容关系:属性-属性值)

图片描述

2.弹性子元素属性

图片描述

五、属性详解

  1. 学习方式一(推荐):css flexbox试验场

  2. 学习方式二:flex属性指南(先看目录,直接选择对应属性查看即可)

六、使用

使用flexbox只需要在父元素上设置display属性即可。
.flex-container {
  display: -webkit-flex; /* Safari */
  display: flex;
  flex-direction:row;
  ......
}

如果您想让它以内联方式显示,则
.flex-container {
  display: -webkit-inline-flex; /* Safari */
  display: inline-flex;
  flex-direction:row;
  ......
}
#注意:仅仅需要在父元素上设置这一个属性即可,它的子元素会自动变成flex items。
给子元素直接添加属性即可
.flex-item{
  flex:1 1 auto;
  ......
}

七、后话

  1. 以上是本文所有内容,以下是小白我的感慨。

  2. 这是本小白(Vagor)第一篇自己原创的文章,希望大神看到多加提点。

  3. 我之后会努力更新原创文章,并以我自己的风格(只留下原创的部分,多引入其他大神文章的精粹内容,给读者更清晰的思路)去展示。

  4. 如对我的文章感兴趣,请关注微信公众号“每日前端”,每天分享一篇优质前端文章。
    图片描述

阅读 5.2k

努力努力早日成为前端攻城师
正在努力学习的前端小渣渣,华中科技大学大三学生。

稳住,稳住啊!!

716 声望
44 粉丝
0 条评论

稳住,稳住啊!!

716 声望
44 粉丝
文章目录
宣传栏