布局基础(原理)
1.前端布局方案:
传统布局方案(浮动、定位等手段)/flex 布局(IE10+)/grid 布局(IE10+)
2.基础
1)css标准盒模型
box = padding+margin+content-width+border
2)盒子模型属性:box-sizing (css3,IE8+)
作用 : 区分IE盒模型(IE4,IE5,navigator4) 和 W3C盒模型(IE6+)
content-box => W3C标准: border-box = content-width + padding+border+margin
border-box => IE盒模型 :border-box= width(border+padding+content-width)+margin
全局支持IE盒模型兼容性处理:
html{
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
box-sizing:border-box;
}
*,*:before,*:after{
-webkit-box-sizing:inherit;
-moz-box-sizing:inherit;
box-sizing:inherit;
}

3)元素分类及特性
布局特性分类:block-level / inline-block-level / inline-level
block-level:值 block/table/flex/grid/list-item
inline-block-level:inline-block/inline-table/inline-grid...
特性:
block-level:
独占一行+尺寸属性可设置
inline-block-level:可置换行内元素 和不可置换行内元素(默认width:0)
可置换:
<img>、 <object>、 <video> 、 <embed>
<textarea> 、<input>表单
<audio> 、<object>、<canvas>、<applet>
匿名可置换:css content设置
不可置换:<a>/<span>...
4)格式化上下文
BFC(block formatting context):
根元素/float/position/inline-block/table-cell/table-caption/flow-root/grid...
特性:
1.独立不对外部元素影响
2.避免出现浮动高度塌陷
3:overflow:auto===》文档流BFC元素
4:(overflow:auto+width:auto)占满当前行的剩余宽度
IFC(inline formatting context):
FFC(flex formatting context)
GFC(grid formatting context)
5)ICB(initial containing block, 初始包含块):根元素<html />的包含块ICB,就是“首屏”。
连续媒体(viewport内) 和分页媒体(内容超过page area)
6)基本原理
文档流:页面元素默认存放的“容器”
脱离文档流:float/position
float:对元素display 影响 :除flex外,其他属性变为block
高度塌陷问题:BFC设置/:after/clear:both
line box(行框):

高度: line-hegiht+height+vertical-align+font-size决定
img元素底部空白问题原理:可置行内换元素如img和inline-block-level元素,在被浏览器解析时,会和“文本”一样,默认在baseline线上显示,而不是在行框的bottom线上。
line-height与vertical-align:
line-height:<length>、<number>、<percentage>和关键字normal(默认值)
normal:取决于浏览器各自的解析机制和font-family导致==》行高>font-size
--(解决方案:line-height:1/100%,但行高为font-size时,文本内容就会溢出)
对其他元素高度影响:不可置换元素为多行时height=line-height * 行数 - 2 * half-heading
margin原理
position上下居中原理:子元素outerHeight = 包含块height - 子元素top - 子元素bottom
文档流中的块级元素,其在水平方向上的尺寸属性,当值为auto时,表示取所在行的剩余宽度,特别地,当margin-left和margin-right的值均为auto时,会平分所在行的剩余宽度
浙公网安备 33010602011771号