深入css(上)
一、选择器优先级
根据选择器的特异度来决定(特异程度)。
1.1选择器的特异度
看选择器中有几个id、(伪)类和标签。
特异度:id>(伪)类>标签
若选中同一个,则优先级高的会覆盖优先级低的。
1.2继承
某些属性会自动继承其父级元素的计算值,除非显式指定一个值。
一般来说,和文字相关的属性是可以继承的,与盒模型相关的属性是不能继承的。
能够继承时,继承的是父元素的计算值。
我们一般计算值使用的是content box,也就是内容部分,若使用box-sizing:border-box,则为border部分及它包含的padding和content部分。
//显式继承
//每一个元素都能继承父元素属性
*{
box-sizing:inherit;//让原本不可继承的属性变为可继承
}
初始值:属性设置为initial。
二、布局
- 常规流(文档流)
- 浮动
- 绝对定位
height/width属性中的auto取值由内容计算得来,百分数相对于容器的content box长度。
容器有指定长度时,百分数才生效(该元素的父级元素有指定的长度值时,该元素对应的百分数才会生效)。
padding和margin的百分数相对于容器宽度。
margin collapse:
若上面元素的margin-bottom为100px,下面元素的margin-top为100px,最终这两个元素的外边距会融合,最后显示最大的那个边距——100px,不会累加。
overflow:
当内容超过盒子时,通过设置overflow属性即可控制溢出内容如何显示。
- visible:展示出
- hidden:隐藏
- scroll:超出的可用滚动条滑动显示