弹性盒布局模型中引入了一些新的属性,只要设置好相应属性,盒子就具有弹性,在改变浏览器窗口大小时,盒子大小也会自动发生变化。并且,盒子的大小由浏览器自动计算,使页面布局更加灵活、更加简单,可以很轻松创建自适应浏览器窗口的流式布局。

如,在class = "father" 的父元素中,包含class = "box1"、class = "box2"、class = "box3"三个子元素。HTML代码如下(除非特殊声明,后文都将使用该实例):

  1. <div class = "father">
  2.     <div class = "box1">1</div>
  3.     <div class = "box2">2</div>
  4.     <div class = "box3">3</div>
  5. </div>

要使用弹性布局盒模型,实现弹性布局的效果,只需要两步:第一步,开启弹性盒模型;第二步,设置子元素的空间分配比例。

开启弹性盒模型

是否开启弹性盒模型,由父元素(即弹性容器,下同)决定。要开启弹性盒模型,只需把父元素的 display 的属性值为 flex 或 inline-flex 即可。如:

  1. .father  {
  2.      width: 600px;
  3.      display: flex;
  4. }

取值为 flex 时,弹性容器被渲染为块级元素,取值为 inline-flex时,弹性容器被渲染为行内元素。如果把一个浮动或绝对定位元素的 display 属性值设置为 inline-flex,则 display 属性的计算值是 flex。

设置子元素的空间分配比例

开启弹性布局盒模型后,所有弹性子元素共享父元素的空间,并按弹性盒进行布局。然后,通过子元素的 flex-grow 属性设置各自的空间分配比例。设置分配比例后,所有子元素根据各自所占用的份额来分配父元素的空间。如:

  1. .box1 {
  2.     flex-grow: 2;       
  3.     background: #7f3ffd;
  4. }
  5. .box2 {
  6.     flex-grow: 1;
  7.     background: #ef39d5;
  8. }
  9. .box3 {
  10.     flex-grow: 1;
  11.     background: #1bb9f1;
  12. }

上述代码中,box1、box2、box3的 flex-grow 属性值分别是2、1、1,它们把父元素的空间分成了2 + 1 + 1 = 4份。其中,box1占2/4,box2占1/4,box3占1/4。父元素的总宽度是600px,box1分得600×(2/4) = 300px,box2分得600×(1/4) = 150px,box3分得600×(1/4) = 150px。运行结果如图 9‑12 所示:

图9-12 display:flex效果

如果父元素 father 为非固定宽度,则在浏览器窗口大小发生变化时,各个子元素的宽度就会随着按比例发生变化,便体现出弹性布局的优势。

关于作者

歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。

CSS3 建立弹性盒布局 Flex布局相关推荐

  1. css_flex弹性盒模型/flex布局/flex在线可视化工具

    文章目录 contents1: content 2: 测试你对flexbox的掌握 flex 模型 flex在线可视化工具(visual guide to css3 flexbox) flex布局 f ...

  2. 弹性布局(Flex布局)

    弹性布局(Flex布局) 文章目录 弹性布局(Flex布局) 绪论 Flex布局是什么? Flex布局的基本概念 Flex容器的属性 以下六个属性设置在Flex容器上 flex-direction属性 ...

  3. 浅谈CSS3中display属性的Flex布局,关于登陆页面属性框的设置

    声明:本文转发自三里屯柯南的浅谈CSS3中display属性的Flex布局http://www.cnblogs.com/xuyuntao/articles/6391728.html 基本概念 采用Fl ...

  4. CSS弹性盒子布局——flex布局的基本概念

    <CSS弹性盒子布局--flex布局的基本概念> Flexible Box 模型,通常被称为 flexbox,是一种一维的布局模型.它给 flexbox 的子元素之间提供了强大的空间分布和 ...

  5. 弹性盒模型 Flex

    1. 什么是弹性盒模型 传统布局基本依靠display float position来完成,有些特殊的布局写起来不太方便. CSS3 弹性盒( Flexible Box 或 flexbox),是一种当 ...

  6. html盒子中盒子排列,css3中弹性盒排布使用方法

    首先,我们来对弹性盒中的称呼做一些了解 如图,弹性盒分为两个轴,一个是主轴,一个是交叉轴,主轴方向可以改变(左右改上下),主轴方向改变后,交叉轴方向也会随之改变 然后,我们来看下浏览器的大概支持情况 ...

  7. flex布局——flex布局

    学习内容: 例如: 体验flex布局 flex布局父项常见属性 justify-content属性 flex-wrap属性 align-items属性 align-content属性 flex-flo ...

  8. flex布局 flex布局的主轴对齐方式

    认识flex布局 flex布局弹性布局 使用flex布局 标签之间没有元素之分(块 行内 行内块) 可以随意设置宽高 父元素添加display:flex 弹性容器 子元素自动变成弹性盒子(弹性盒子没有 ...

  9. CSS3 Flexbox 弹性盒与 css3 阴影效果的演示

    CSS3 Flexbox 演示 CSS3 Flexbox 弹性盒与 css3 阴影效果的演示 https://www.html.cn/demo/flexbox-playground/

最新文章

  1. ubuntu16.04打开软件或终端的窗口自动在左上角
  2. sublime text3 按F5运行python代码
  3. transformClassesWithProfilers-transformForFullDebug
  4. python调用其他类中的方法_无法调用其他类中的方法
  5. 计算机图形学开发框架,计算机图形学-基于3d图形开发技术
  6. ibatis #于 $区别
  7. 逆水寒服务器维护公告,逆水寒1月3日更新了什么 逆水寒1月3日更新维护公告
  8. 通用双向循环链表学习
  9. 用74LS161和74LS138加必要的门电路实现下面波形图的电路.
  10. linux笔记本风扇调节,Linux下笔记本的风扇控制问题
  11. Win11 如何跳过微软注册界面
  12. Linux平台下软件推荐及主题图标推荐
  13. 用PYTHON优化投资组合的配置
  14. 云计算实验(二)Hadoop 练习
  15. MATLAB版 代码狗屁不通的狗屁不通文章生成器
  16. Kali linux 学习笔记(三十一)无线渗透——密钥交换(PTK)2020.3.11
  17. 进制之间的相互转换(超详细)
  18. java做安卓文本编辑器,android文本编辑器
  19. stylecloud ,wordcloud 库学习及使用例子
  20. 华师大 OJ 2822

热门文章

  1. EOS Platform 7.2 安装
  2. 应用程序、虚拟目录、应用程序池
  3. ini_set的用法介绍
  4. 开启Cisco交换机DHCP Snooping功能
  5. UILabel教程 touch 事件
  6. IDEA 类名下有红线解决方案:
  7. 异质图神经网络及其在电商领域中的应用
  8. Open-Set recognition会议记录
  9. Slog57_玩转NPM之NPM_package的制作发布和使用
  10. 打印并输出 log/日志到文件(C++)