flex弹性盒子(伸缩盒模型)的使用
伸缩盒布局
1 伸缩容器和伸缩项目
伸缩容器: 一个元素设置 CSS 属性 display:flex
或者 display: inline-flex
,该元素就变为伸缩容器。
伸缩项目: 伸缩容器的子元素就会变为伸缩项目。
- 伸缩项目会水平排列,可以完美的设置宽高以及内外边距,不存在外边距塌陷合并,并且具有伸缩性。
- 只有伸缩容器的子元素才是伸缩项目,子元素的子元素以及其他后代不是。
- 伸缩项目也可以作为它的子元素的伸缩容器。
2 设置主轴方向和换行方式
主轴: 伸缩项目会沿着主轴排列,主轴的默认是水平的且方向是从左到右。
侧轴: 与主轴垂直的就是侧轴,侧轴默认是垂直的且从上到下。
① 设置主轴方向
flex-direction 属性可以设置主轴方向:
值:
row 默认值,水平且从左到右
row-reverse 水平从右到左
column 垂直从上到下
column-reverse 垂直从下到上
② 设置换行方式
flex-wrap 属性可以设置伸缩项目的换行方式:
值:
nowrap 默认值,强制不换行
wrap 自动换行
wrap-reverse 换行且反转行的排列属性
③ 同时设置主轴方向和换行方式
flex-flow 属性可以同时设置主轴方向和换行方式,该属性是 flex-direction 和 flex-wrap 的复合属性,值没有数量和顺序要求。
3 设置伸缩项目在主轴上的对齐方式
justify-content 属性可以设置伸缩项目在主轴上的对齐方式:
值:
flex-start 默认值,靠主轴起始位置对齐
flex-end 靠主轴结束位置对齐
center 居中对齐
space-between 伸缩项目在主轴上均匀分布,两端没有间隙,中间有间隙。
space-around 伸缩项目在主轴上均匀分布,两端的间隙是直接间隙的一半。
space-evenly 伸缩项目在主轴上均匀分布,两端的间隙与中间的间隙一样。
4设置伸缩项目在侧轴上的对齐方式
① 一条主轴线(伸缩项目在主轴上不换行)
align-items 属性可以设置伸缩项目在侧轴上的对齐方式,主要用于只有一条主轴线的情况。
值:
stretch 默认值,伸缩项目在侧轴上拉伸。
flex-start 靠侧轴开始位置对齐
flex-end 靠侧轴结束位置对齐
center 居中对齐
baseline 文字基线对齐
② 多条主轴线 (伸缩项目在主轴上发生换行)
align-content 属性可以设置伸缩项目在侧轴上的对齐方式,只能用于多条主轴的情况(伸缩项目发生了换行)
值:
stretch 默认值,伸缩项目在侧轴上拉伸。
flex-start 靠侧轴开始位置对齐
flex-end 靠侧轴结束位置对齐
center 居中对齐
space-between 在侧轴方向上,两端没有间隙,中间有间隙。
space-around 在侧轴方向上,两端的空隙是中间空隙的一半。
space-enenly 在侧轴方向上,两端的空隙与中间空隙一样。
注意:
- align-items 在一条主轴或多条主轴设置对齐方式都会生效,但是我们只有在一条主轴的情况下使用该属性。
- align-content 只有多条主轴线的情况下才生效。
5 伸缩项目的伸缩性
① 伸缩项目在主轴上的基准长度 flex-basis
需要设置一个长度作为值,概属性设置的是伸缩项目在主轴方向上的长度。 如果没有设置该属性,伸缩项目在主轴上的长度就是 width的值 或者 height的值。
② 扩展比率 flex-grow
伸缩项目发生扩展的前提: 伸缩容器在主轴方向上有富余的空间。
伸缩项目默认的扩展比率是 0。
伸缩项目在扩展的时候,按照各自的扩展比率瓜分伸缩容器的富余空间。
③ 收缩比率 flex-shrink
伸缩项目发生收缩的前提:伸缩容器在主轴方向上的长度不够(小于伸缩项目在主轴上的长度的和)
伸缩项目默认的收缩比率是 1。
伸缩项目在收缩的时候,每个伸缩项目要补一部分伸缩容器的亏空,补多少既考虑自己原本的长度也考虑收缩比率。
④ flex 复合属性
flex: grow shrink basis;
复合数的简写:
flex: 1; /* flex: 1 1 0 */
flex: auto; /* flex: 1 1 auto */
flex: none; /* flex: 0 0 auto*/
flex: 0 auto; /* flex: 0 1 auto */
6 伸缩项目排序
给伸缩项目设置属性 order 可以调整伸缩项目排列属性。 order 属性的值是数字,值越小排序越靠前,可以是负数。
7 单独设置伸缩项目在侧轴上的对齐方式
给伸缩项目设置属性 align-self,可以单独设置该伸缩项目在侧轴上的对齐方式,属性的值与 align-items 一样。
8 伸缩盒相关 CSS 属性总结
① 设置给伸缩容器的属性
CSS 属性名 | 含义 | 值 |
---|---|---|
display | 设置显示模式 |
flex: 设置为伸缩容器 inline-flex:设置为行内的伸缩容器 |
flex-direction | 设置主轴方向 |
row:默认值,水平从左到右 row-reverse:水平从右到左 column:垂直从上到下 column-reverse:垂直从下到上 |
flex-wrap | 设置换行方式 |
nowrap:默认值,不换行 wrap:自动换行 wrap-reverse:自动换行且反转排列 |
flex-flow |
复合属性 复合 主轴方向和换行方式 |
|
justify-content | 伸缩项目在主轴上的对齐方式 |
flex-start:靠主轴起始位置 flex-end:靠主轴结束位置 center:居中 space-between: 两端没有间隙,中间有间隙 space-around:两端的间隙是中间间隙的一半 space-evenly:两端间隙与中间间隙一样 |
align-items |
伸缩项目在侧轴上的对齐方式 一条主轴线 |
stretch:默认值,拉伸 flex-start:靠侧轴其实位置 flex-end:靠侧轴结束位置 center:居中 baseline:文字基线对齐. |
align-content |
伸缩项目在侧轴上的对齐方式 多条主轴线 |
stretch:默认值,拉伸 flex-start:靠侧轴其实位置 flex-end:靠侧轴结束位置 center:居中 space-between: 两端没有间隙,中间有间隙 space-around:两端的间隙是中间间隙的一半 space-evenly:两端间隙与中间间隙一样 |
② 设置给伸缩项目的属性
CSS 属性名 | 含义 | 值 |
---|---|---|
flex-basis | 设置伸缩项目在主轴上的长度 |
长度 默认值是 auto |
flex-grow | 设置扩展比率 | 数字,默认是 0. |
flex-shrink | 设置收缩比例 | 数字,默认是 1 |
flex | 复合属性,复合 basis、grow、shrink | |
order | 设置伸缩项目排序顺序 | 数字 |
align-self | 单独设置伸缩项目在侧轴上对齐方式 |
auto: 默认值 stretch:拉伸 flex-start:靠侧轴其实位置 flex-end:靠侧轴结束位置 center:居中 baseline:文字基线对齐. |
flex弹性盒子(伸缩盒模型)的使用相关推荐
- 浅析flex弹性盒子伸缩比
之前在做移动端内容左右滑动时,被flex属性绕晕了.说实话,在网上看了很多讲述flex属性的相关博客,说的非常复杂,不如自己总结的香.今天用一篇博客带你玩转flex属性! 准备工作 弹性容器开启弹性布 ...
- Webkit Flex伸缩盒模型属性备忘
一个元素被定义display:-webkit-flex;则此元素即为伸缩盒模型中的伸缩容器,其包含的子元素是伸缩项目. flex是一个复合属性.Flexbox伸缩布局盒模型中的伸缩容器及伸缩特性定义. ...
- 转:Webkit Flex伸缩盒模型属性备忘
一个元素被定义display:-webkit-flex;则此元素即为伸缩盒模型中的伸缩容器,其包含的子元素是伸缩项目. flex是一个复合属性.Flexbox伸缩布局盒模型中的伸缩容器及伸缩特性定义. ...
- Flex弹性盒子(一篇带你掌握潮流 Flex 布局)
文章目录 Flex弹性盒子 1.说在前头 1.1.Flex布局出现之前 1.2.Flex布局出现后 2.什么是Flex布局? 3.Flex container/item(父/子容器)的常用属性 4.L ...
- Flex弹性盒子详解:从量变到质变的理解
Flex弹性盒子 在前端css3中有个非常重要的属性,就是弹性盒子了,他在页面布局中起到的作用可谓是有着王霸之业,那么我们如何正确的使用flex布局呢?让我来介绍一下吧.我们可以将整个flex布局分成 ...
- HTML+CSS_第三部分(Flex弹性盒子布局、grid网格布局、移动端、移动端流式布局、移动端rem布局、响应式布局、Bootstrap框架)
文章目录 (1)Flex弹性盒子布局 一: 父容器上的属性 1. display:flex 设置为弹性盒子(写在父容器上) 2.flex-direction值 设置子项的布局方向(写在父容器上) 3. ...
- flex弹性盒子flex-grow 和flex的区别
在flex弹性盒子体系中,flex-grow和flex都有对子元素进行放大的作用,但是这两个属性在放大时的计算方法不同,在使用时候要注意,使用正确的放大属性,从而达到自己想要的效果. 这是一个宽700 ...
- Vue.js-Day08【项目实战(附带 完整项目源码)-day03:订单确认页面、美团支付页面、flex弹性盒子布局】
Vue.js实训[基础理论(5天)+项目实战(5天)]博客汇总表[详细笔记] 实战项目源码[链接:https://pan.baidu.com/s/1r0Mje3Xnh8x4F1HyG4aQTA 提 ...
- flex html 页面移动,HTML页面布局之flex弹性盒子
这里是修真院前端小课堂,本篇分析的主题是 [HTML页面布局之flex弹性盒子] 每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方 ...
最新文章
- ueditor1.4.3jsp版成功上传图片后却回显不出来与在线管理显示不出图片的解决方案...
- jquery post 返回php,如何在成功的AJAX / jQuery POST上返回PHP变量
- 装修(十三天,面板又换错了,大理石空鼓)
- rhino5.0安装教程
- typora图床教程-阿里云版
- 如何:在Spring中使用@Conditional和Condition注册组件
- SharePoint2013 2019性能及限制
- Java ClassLoader getSystemResource()方法与示例
- 同一个电脑安装几个MATLAB,同一个版本的matlab、同一个.m文件,为何一个顺利执行、另一个出错?...
- 自然语言处理之TF-IDF
- php抽奖设置数量,php实现自定义中奖项数和概率的抽奖函数示例
- CriminalIntent项目开发
- matlab内建函数怎么不同颜色,matlab分段函数不同颜色绘图
- 批量WORD转换为PDF
- 《编程珠玑》---笔记。浏览此文,一窥此书。
- 整理一下第一次参加华为大数据挑战赛自己的一些收获吧(正式赛篇阶段一)
- 如何将windows桌面默认位置修改为D盘
- 数商云钢材行业智慧供应商管理系统:降低企业运营成本,构建数字化供应商管理体系
- 装饰模式 DecoratePattern
- 【太虚AR_v0.1】使用教程 | 视频播放