flex弹性布局之弹性盒子模型
一,flex弹性盒子布局
1. flex弹性盒子介绍
弹性盒子是 CSS3 的一种新的布局模式。CSS3 弹性盒( Flexible Box 或 flexbox,是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。
引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。
2. flex弹性盒子组成
弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。
弹性容器定义,通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。
二,flex弹性容器
1.弹性容器的属性总结表:
属性说明 | 属性 | 值 |
---|---|---|
启用Flex 布局 | display | flex |
主轴的方向 | flex-direction | row(默认值 水平)/ row-reverse / column(垂直)/ column-reverse |
水平方向对齐方式 | justify-content | flex-start(默认值)/ flex-end / center / space-between / space-around |
垂直方向对齐方式 | align-items | stretch(默认值)/ center / flex-end / baseline / flex-start |
flex-direction 和 flex-wrap 的简写 | flex-flow | ( flex-direction(方向值) ,flex-wrap( 换行值)) |
子元素换行 | flex-wrap | nowrap(默认值)/ wrap / wrap-reverse |
多(行)根轴线的对齐方式 | align-content | stretch(默认值)/ flex-start / center / flex-end / space-between / space-around |
详细的解释和在线预览: 菜鸟教程
2.flex
使用弹性布局,首先需要在父元素通过设置 display: flex 将其定义为弹性容器。下面详细讲一下比较重要,而且常用的一些属性。
3.flex-direction的值说明:
row:横向从左到右排列(左对齐),默认的排列方式。
column:纵向从上到下排列(上对齐)。
row-reverse:反转横向排列(右对齐,从后往前排,最后一项排在最前面。(了解即可)
column-reverse:反转纵向排列,从后往前排,最后一项排在最上面。(了解即可)
4.justify-content属性值的说明:
水平对齐方向的属性每个值的说明:
属性 | 属性值说明 |
---|---|
flex-start | 所有子元素左对齐 |
flex-end | 所有子元素右对齐 |
center | 所有子元素居中 |
space-between | 子元素两端对齐,元素之间的间隔都相等 |
space-around | 每个子元素两侧的间隔相等。项目之间的间隔是两侧的间隔的两倍 |
水平对齐效果图:
5.align-items 属性每个值的说明:
属性 | 属性值说明 |
---|---|
flex-start | 所有子元素上对齐 |
flex-end | 所有子元素下对齐 |
center | 所有子元素居中对齐 |
baseline | 所有子元素在父元素的基线上 |
stretch | 拉伸元素以适应父元素高度 |
垂直对齐方式效果图:
二,flex弹性子元素
flex子元素具有如下属性:
属性说明 | 属性 | 值 |
---|---|---|
子元素放大的比例 | flex-grow | 0(默认值) |
子元素缩小的比例 | flex-shrink | 1(默认值 |
子元素宽度 | flex-basis | auto(默认值) |
前三者的混合写法 | flex | auto (1 1 auto) 和 none (0 0 auto) / 自定义写一个值即可 |
子元素排列顺序。 | order | 0(默认值) |
1.order属性
定义项目的排列顺序。数值越小,排列越靠前 order:0(默认值)
order :0
解释:order属性取值是一个正整数.
2.flex属性说明:(重点)
在实际使用flex布局中,经常使用的就是flex属性,来同时设置flex-grow、flex-shrink、flex-basis这3个属性。flex属性是三者的简写形式,类似一个“语法糖”。日常开发制作中大多数使用这种简写方式。
语法:
flex: grow shrink basis;
flex: 比例值;
案例:
flex:1; 等价于 flex:1 1 auto;
flex:2; 等价于 flex:2 1 auto;”。
解释:也就是说使用flex的写法,在只填写一个值时,表示只设置了flex-grow这个属性的取值,其他两个也属于默认值就可以省略简写了。事实上,在实际开发中我们一般也是只需要设置flex-grow属性,很少用得上另外两个属性。
3.flex-grow
使用flex-grow属性来定义弹性盒子内部子元素的放大比例。
使用条件就是:所有子元素宽度之和小于父元素的宽度时,子元素如何分配父元素的剩余空间。
语法:
flex-grow: 数值;
解释:flex-grow属性取值是一个数值,默认值为0。当取值为0时,表示不获取父元素的剩余空间,不会参与划分。当取值大于0时,表示获取父元素的剩余空间(即子元素放大)。取值越大,获取得越多。
4.flex-shrink
flex-shrink属性用于定义弹性盒子内部子元素的缩小比例。
使用条件就是:所有子元素宽度之和大于父元素的宽度时,子元素如何缩小自己的宽度。
语法:
flex-shrink: 数值;
解释: flex-shrink属性取值是一个数值,默认值为1。当取值为0时,表示子元素不缩小,不会参与划分。当取值大于1时,表示子元素按一定的比例缩小。取值越大,缩小得越厉害。
两者的总结对比:
只有当所有子元素宽度之和小于弹性盒子的宽度时,flex-grow才会生效,而此时flex-shrink无效;只有当所有子元素宽度之和大于弹性盒子的宽度时,flex-shrink属性才会生效,而此时flex-grow无效。也就是说,flex-grow和flex-shrink是互斥的,不可能同时生效。
5. flex-basis
解释: flex-basis就是width的替代品,这两个都用来定义子元素的宽度。只不过在弹性盒子中,flex-basis的语义会比width好一点而已。
语法:
flex-basis: auto;
解释:属性取值有两个:一个是“auto”,即该子元素的宽度是根据内容多少来定的;
另外自行定义“长度值”,单位可以为px、em和百分比等。
后期根据需要,在进行增加…
flex弹性布局之弹性盒子模型相关推荐
- CSS权重,属性书写顺序,布局技巧和网页布局总结,盒子模型排列位置---CSS
文章目录 一.CSS权重 二.CSS属性书写顺序 一.布局总结 二.常见布局技巧 一.CSS权重 注意:类选择器.属性选择器.伪类选择器,权重为 10. 参考看 CSS三大特性,在CSS的特性优先级中 ...
- 用php做一个九行菱形,弹性布局之弹性容器---PHP第九期线上班
一.弹性容器的两种类型 任何元素都可以通过给display添加flex属性值可以转为弹性盒子,也叫弹性容器. 弹性容器分为块级弹性元素和行内弹性元素. 实例 1.块级弹性盒子 item1 item2 ...
- CSS布局页面之盒子模型
要想学会用CSS布局页面,就首先要理解盒子模型! 什么是盒子模型?如果我们不知道盒子模型是什么,但是对于生活中的盒子一定都很熟悉,这里提到的盒子模型就可以理解成现实生活 ...
- 便捷的flex弹性布局
互联网发展至今,界面的搭建基本都是采用CSS的布局,基于盒子模型,依赖 display属性 , position属性, float属性.但对于那些特殊布局非常不方便,比如,垂直居中.一种全新的针对we ...
- 移动端基础(2)—— flex弹性布局
一.flex弹性布局 flexible-box-layout 弹性盒式模型,它能更加高效的控制元素的对齐.排列,更重要的是能够自动计算布局内元素的尺寸,无论这个元素的尺寸是固定的还是动态的. 父元素( ...
- 超详细的flex弹性布局+实例分析
1.基本概念 什么是flex? flex全称是FlexibleBox,即弹性盒子,用来进行弹性布局,弹性布局也是目前前端应用最广的布局之一. flex布局的优点,为什么要用flex布局? 1.可以为盒 ...
- CSS - 弹性布局(flex)
目录 传统布局的不足之处:导航栏实现案例说明问题 关于单个.一行多个浮动元素的水平居中实现 弹性布局 弹性容器的主轴和侧轴概念 弹性容器的主轴对齐&侧轴对齐(一维布局特性说明) 主轴flexi ...
- 弹性布局(Flex布局)
弹性布局(Flex布局) 文章目录 弹性布局(Flex布局) 绪论 Flex布局是什么? Flex布局的基本概念 Flex容器的属性 以下六个属性设置在Flex容器上 flex-direction属性 ...
- 一、CSS弹性布局[弹性盒子、弹性元素]
一.CSS弹性布局 1.弹性盒子 弹性盒子的属性全都是写在父元素上面 1.1基础 解释:在父元素上写上display:flex;或者display:inline-flex;子元素就会出现弹性效果,其中 ...
最新文章
- Mobileye 自动驾驶策略(一)
- 顺序表循环队列:创建初始化、入队、出队、获取队列头数据、计算队列有效数据长度...
- 动态隐藏ALV的行和列
- c++循环执行一个函数_20川大计算机 | 时间复杂度,你避不开的一个考点
- python之字典使用方法总结
- asterisk1.8 Makefile分析 (2)
- 程序员必须关注的技术趋势,内附PDF下载链接
- android学习十三(android的通知使用)
- Java中单例设计模式总结
- 理解Java主函数中的String[] args
- 数据结构:实验四 图的遍历
- 工程项目利用AutoMake生成Makefile实战
- plsql查看建表语句
- qq邮箱收不到通知邮件的解决方法
- HRA系列DC-DC隔离电源模块接线注意事项
- Undefined symbol main (referred from entry9a.o).
- 网易手游《镇魔曲》怎么打?华为畅享6S帮你春节同学聚会露一手
- 学习笔记——VLSI测试方法学和可测性设计
- 护士资格证考试机考可以用计算机吗,护士资格人机对话考试怎么考?
- 王道考研计算机网络学习心得——第一章-计算机网络体系结构
热门文章
- D. Boboniu Chats with Du(Codeforces Round #664 (Div. 2) )
- 服装ERP系统助力企业管理精细化
- 不惧面试:HTTP协议(1) - 基础扫盲
- 微信小程序实现物流信息(进度展示)
- C# 用真实需求,手把手教你写面向对象的代码
- 软件测试常考面试题-软件测试面试宝典一篇全
- qiankun / Vue3 项目中,使用百度地图拾取经纬度
- base64转化字节流 js_JS 实现blob与base64互转
- Ubuntu16.04.4 + 双 NAVDA TitanX + CUDA9.0 + cudnn7.05 + TensorFlow 1.8(1.5.0) + Keras
- XToolsCRM的“企业维生素”理念让忙于不忙只在一瞬之间