一、层叠(cascading)优先级
层叠规则的优先级依次递减的是:样式表来源、选择器优先级、源码位置。
- 样式表来源的重要程度依次递减:用户代理样式、用户样式表、作者样式表、作者样式表中的!important、用户样式表中的!important、用户代理样式表中的!important。
- CSS 中有这些选择器:基础选择器(包含 ID 选择器、类型选择器、类选择器和通用选择器)、组合器(包含子组合器、相邻兄弟组合器和通用兄弟组合器)、复合选择器、伪类选择器、伪元素选择器和属性选择器。
- 选择器优先级:选择器优先级: id > class = attribute = 伪类 > type = 伪元素。
- 源码位置的优先级按照:文档中最后声明有效,即在源码后面声明的比前面声明的优先级高。
二、继承
CSS可以继承HTML的一些属性:这些属性通常和文本有关:color 、 font 、 font-family 、 font-size 、 font-weight 、 font-variant 、 font-style 、 line-height 、 letter-spacing 、 text-align 、 text-indent 、 text- transform 、 white-space 以及 word-spacing。还有少量的表格、列表属性。
三、CSS中比较重要的是盒模型
当对一个文档进行布局(lay out)的时候,浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型(CSS basic box model),将所有元素表示为一个个矩形的盒子(box)。CSS 决定这些盒子的大小、位置以及属性(例如颜色、背景、边框尺寸…)。
每个盒子由四个部分(或称区域)组成,其效用由它们各自的边界(Edge)所定义(原文:defined by their respective edges,可能意指容纳、包含、限制等)。如图,与盒子的四个组成区域相对应,每个盒子有四个边界:内容边界 Content edge、内边距边界 Padding Edge、边框边界 Border Edge、外边框边界 Margin Edge。
四、媒体查询的应用
媒体查询可以让某些样式在页面满足某种条件时才生效。一个比较重要的功能是在不同设备上实现图片大小一致。因为不同的设备物理像素不同,通过CSS像素能解决这个问题。“设备像素比”描述不同设备上物理像素和CSS像素的比值。
五、CSS生态相关
CSS在使用时代码复用程度不高,开发效率低,可以使用CSS预处理器解决这个问题。
- 自定义变量:提高可复用
- 嵌套、作用域:避免全局污染,结构层次清晰,减少复杂组合选择器
- mixins、继承:提高可复用、可维护性
- 操作符、条件循环语句、自定义函数:提高可编程能力,增加灵活性。