CSS3 建立弹性盒布局 Flex布局
弹性盒布局模型中引入了一些新的属性,只要设置好相应属性,盒子就具有弹性,在改变浏览器窗口大小时,盒子大小也会自动发生变化。并且,盒子的大小由浏览器自动计算,使页面布局更加灵活、更加简单,可以很轻松创建自适应浏览器窗口的流式布局。
如,在class = "father" 的父元素中,包含class = "box1"、class = "box2"、class = "box3"三个子元素。HTML代码如下(除非特殊声明,后文都将使用该实例):
<div class = "father">
<div class = "box1">1</div>
<div class = "box2">2</div>
<div class = "box3">3</div>
</div>
要使用弹性布局盒模型,实现弹性布局的效果,只需要两步:第一步,开启弹性盒模型;第二步,设置子元素的空间分配比例。
开启弹性盒模型
是否开启弹性盒模型,由父元素(即弹性容器,下同)决定。要开启弹性盒模型,只需把父元素的 display 的属性值为 flex 或 inline-flex 即可。如:
.father {
width: 600px;
display: flex;
}
取值为 flex 时,弹性容器被渲染为块级元素,取值为 inline-flex时,弹性容器被渲染为行内元素。如果把一个浮动或绝对定位元素的 display 属性值设置为 inline-flex,则 display 属性的计算值是 flex。
设置子元素的空间分配比例
开启弹性布局盒模型后,所有弹性子元素共享父元素的空间,并按弹性盒进行布局。然后,通过子元素的 flex-grow 属性设置各自的空间分配比例。设置分配比例后,所有子元素根据各自所占用的份额来分配父元素的空间。如:
.box1 {
flex-grow: 2;
background: #7f3ffd;
}
.box2 {
flex-grow: 1;
background: #ef39d5;
}
.box3 {
flex-grow: 1;
background: #1bb9f1;
}
上述代码中,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布局相关推荐
- css_flex弹性盒模型/flex布局/flex在线可视化工具
文章目录 contents1: content 2: 测试你对flexbox的掌握 flex 模型 flex在线可视化工具(visual guide to css3 flexbox) flex布局 f ...
- 弹性布局(Flex布局)
弹性布局(Flex布局) 文章目录 弹性布局(Flex布局) 绪论 Flex布局是什么? Flex布局的基本概念 Flex容器的属性 以下六个属性设置在Flex容器上 flex-direction属性 ...
- 浅谈CSS3中display属性的Flex布局,关于登陆页面属性框的设置
声明:本文转发自三里屯柯南的浅谈CSS3中display属性的Flex布局http://www.cnblogs.com/xuyuntao/articles/6391728.html 基本概念 采用Fl ...
- CSS弹性盒子布局——flex布局的基本概念
<CSS弹性盒子布局--flex布局的基本概念> Flexible Box 模型,通常被称为 flexbox,是一种一维的布局模型.它给 flexbox 的子元素之间提供了强大的空间分布和 ...
- 弹性盒模型 Flex
1. 什么是弹性盒模型 传统布局基本依靠display float position来完成,有些特殊的布局写起来不太方便. CSS3 弹性盒( Flexible Box 或 flexbox),是一种当 ...
- html盒子中盒子排列,css3中弹性盒排布使用方法
首先,我们来对弹性盒中的称呼做一些了解 如图,弹性盒分为两个轴,一个是主轴,一个是交叉轴,主轴方向可以改变(左右改上下),主轴方向改变后,交叉轴方向也会随之改变 然后,我们来看下浏览器的大概支持情况 ...
- flex布局——flex布局
学习内容: 例如: 体验flex布局 flex布局父项常见属性 justify-content属性 flex-wrap属性 align-items属性 align-content属性 flex-flo ...
- flex布局 flex布局的主轴对齐方式
认识flex布局 flex布局弹性布局 使用flex布局 标签之间没有元素之分(块 行内 行内块) 可以随意设置宽高 父元素添加display:flex 弹性容器 子元素自动变成弹性盒子(弹性盒子没有 ...
- CSS3 Flexbox 弹性盒与 css3 阴影效果的演示
CSS3 Flexbox 演示 CSS3 Flexbox 弹性盒与 css3 阴影效果的演示 https://www.html.cn/demo/flexbox-playground/
最新文章
- ubuntu16.04打开软件或终端的窗口自动在左上角
- sublime text3 按F5运行python代码
- transformClassesWithProfilers-transformForFullDebug
- python调用其他类中的方法_无法调用其他类中的方法
- 计算机图形学开发框架,计算机图形学-基于3d图形开发技术
- ibatis #于 $区别
- 逆水寒服务器维护公告,逆水寒1月3日更新了什么 逆水寒1月3日更新维护公告
- 通用双向循环链表学习
- 用74LS161和74LS138加必要的门电路实现下面波形图的电路.
- linux笔记本风扇调节,Linux下笔记本的风扇控制问题
- Win11 如何跳过微软注册界面
- Linux平台下软件推荐及主题图标推荐
- 用PYTHON优化投资组合的配置
- 云计算实验(二)Hadoop 练习
- MATLAB版 代码狗屁不通的狗屁不通文章生成器
- Kali linux 学习笔记(三十一)无线渗透——密钥交换(PTK)2020.3.11
- 进制之间的相互转换(超详细)
- java做安卓文本编辑器,android文本编辑器
- stylecloud ,wordcloud 库学习及使用例子
- 华师大 OJ 2822