BFC 居中1 居中2 Flex 布局教程:语法篇 - 阮一峰的网络日志 flex-demo grid布局模型
外部显示类型
控制在文档流中的排版
inline block run-in内部显示类型
控制子元素的排版
flow layout grid flex tablelegacy双关键字
inline-block
文档流中(即外部)表现为inline内联, 自身为blockinline-flex
外部表现为inline ,子元素为flex
若是浮动或者为绝对定位,那么相当于flex
定基点: 可以理解为元素的左上角的位置;
默认属性: static, 由浏览器控制, 无法设置top\left\right\bottom等, 定基点就是html文档;
绝对定位属性: absolute, 相对上一级父元素进行定位,
父元素不可以是static,这样会直接定位到html元素,所以在父元素要添加relative属性.会脱离正常页面流,不会占用空间.绝对绝对定位: fixed ,相对与屏幕位置
表示元素的初始位置是基于视口计算的,否则初始位置就是元素的默认位置浮动在表面,不随页面滚动粘性定位: sticky 动态效果
sticky生效的前提是,必须搭配top、bottom、left、right这四个属性一起使用,不能省略,否则等同于relative定位应用场景有:堆叠照片\表头固定特点
沿其父元素的左侧或右侧放置,并变成块元素
除了flex\inlien-flex保持流动性
与absolute相反定位
脱离文档流
遇到其他float则排列下去,自左向右,自上而下
清除定位
clear: both
用于其他元素排列在float的下方,而非重叠或者围绕的时候使用clearfixed.after
消除iinline-block与float的影响, 常用于水平导航栏制作行内
inline-flex块级
flexflex-direction
决定项目排列方向
row 行column 列flex-wrap
设置换行方式
nowarpwarpwarp-reversejustify-content
项目水平对齐方式
centerspace-betweenspace-aroundalign-items
项目垂直对齐方式
centerstretchbaselineflex-startalign-content
多轴线对齐
若只有一条则不起作用order
定义项目在容器中的排列位置,越小越靠前
默认为0flex-grow
项目的放大比例
默认为0
存在剩余空间也不放大为不同项目设置数值
剩余空间分配按照数值比例划分flex-shrink
与flex-grow相反,定义缩小比例
默认为1没有负值flex-basis
分配多余空间之前,项目占据的主轴空间align-self
覆盖容器的flex-items,拥有自定义的对齐方式占据形式
对应标签边框为界限
具有包裹性包含内容
文本数据+其他行内元素
若强制包含块级元素,会被打撒为匿名块,块级元素嵌套在其中,不提倡使用,不符合页面结构特点
自左向右流动
IFC不能设置宽高
常见
占据形式
占据父元素的整个空间包含内容
所有元素类型特点
自上而下
BFC每个块元素独立一行
常见
div p ol ul h form table section aside article audio video带红点的可以用于设置水平垂直居中, 其他属性也可以相互结合设置 , 较常用就是
①不知道宽高&&是否兼容设置
②是否能用flex
行内元素(inline)
text-align:center
类型
inline/inline-block/inline-table/inline/flex单个块级元素(block)
父元素设置text-aligin:center; 子元素设置max/min-width+margin:auto;否则会被拉伸到父元素宽高;
position: absolute
margin: 0 auto;flex
justify-content:center多个块级元素(修改默认的inline为其他):
inline-block inline-flex flex block…行内
设置 line-height = height
文字的垂直居中vertical-algin
块级
知道宽高
绝对定位
margin-top=marigin-bottom=50%display: table-cell
vertical-align: middle;不知道宽高
绝对定位
top/left=50%; transform: translate(-50%,-50%)
margin-auto
top/left/bottom/right:0flex模型
align-items: center;
justify-content: center盒子模型
vertical-align: middle;table布局(待更)