这是我参与「第四届青训营 」笔记创作活动的的第2天
BFC(即脱离文档流)
0、根元素,即 HTML 元素(最大的一个BFC) 1、浮动(float 的值不为 none) 2、绝对定位元素(position 的值为 absolute 或 fixed) 3、行内块(display 为 inline-block) 4、表格单元(display 为 table、table-cell、table-caption、inline-block 等 HTML 表格相关的属性) 5、弹性盒(display 为 flex 或 inline-flex) 6、默认值。内容不会被修剪,会呈现在元素框之外(overflow 不为 visible)
BFC作用(使用场景)
1、自适应两(三)栏布局(避免多列布局由于宽度计算四舍五入而自动换行) 2、避免元素被浮动元素覆盖 3、可以让父元素的高度包含子浮动元素,清除内部浮动(原理:触发父div的BFC属性,使下面的子div都处在父div的同一个BFC区域之内) 4、去除边距重叠现象,分属于不同的BFC时,可以阻止margin重叠
块级元素
1.总是从新的一行开始,即各个块级元素独占一行,默认垂直向下排列;
2.高度、宽度、margin及padding都是可控的,设置有效,有边距效果;
3.宽度没有设置时,默认为100%;
4.块级元素中可以包含块级元素和行内元素。
行内元素
1.和其他元素都在一行,即行内元素和其他行内元素都会在一条水平线上排列;
2.高度、宽度是不可控的,设置无效,由内容决定。
3.根据标签语义化的理念,行内元素最好只包含行内元素,不包含块级元素。 \
行内块状元素特征:(1)不自动换行
(2)能够识别宽高
(3)默认排列方式为从左到右
样式优先级
样式类型分为三类 行间==》内联==》外部
选择器类型
ID #id class .class 标签 p 通用 * 属性 [type="text"] 伪类 :hover 伪元素 ::first-line 子选择器、相邻选择器
权重计算规则
第一等:代表内联样式,如: style=””,权值为1000。 第二等:代表ID选择器,如:#content,权值为0100。 第三等:代表类,伪类和属性选择器,如.content,权值为0010。 第四等:代表类型选择器和伪元素选择器,如div p,权值为0001。 通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。 继承的样式没有权值。
!important 的作用是提升优先级,换句话说。加了这句的样式的优先级是最高的(比内联样式的优先级还高)。
标准模型和IE模型
计算宽度和高度的不同 标准盒模型:盒子总宽度/高度 =width/height + padding + border + margin。( 即 width/height 只是 内容高度,不包含 padding 和 border 值 ) IE盒子模型:盒子总宽度/高度 =width/height + margin = (内容区宽度/高度 + padding + border) + margin。( 即 width/height 包含了 padding 和 border 值 )
CSS如何设置这两种模型
标准:box-sizing: content-box;( 浏览器默认设置 ) IE:box-sizing: border-box;