选择器优先级?
可划分等级为a b c d,权重依次降低
- a:内联样式
- b:id选择器的数量
- c:类选择器、属性选择器、伪类选择器的数量之和
- d:标签选择器、伪元素选择器的数量之和
继承性:某些属性会继承其父元素的属性值,除非显式指定一个值。不可继承的属性可以通过设置为inherit来显式继承。
初始值:每个属性都有初始值/默认值,也可通过initial显式重置为初始值
css求值过程?

布局layout是什么?
确定内容的大小、位置的算法,通过元素、容器、兄弟节点、内容等信息来计算。
布局相关技术?
- 盒模型:页面元素视为一个盒子,包括content(width\height)、padding、border、margin
- width可设置为像素、百分比、auto,(百分比:常规流中和浮动的情况下,相对于父元素content-box的宽度;绝对定位时,相对于包含块padding-box的宽度。)
- height可设置为像素、百分比、auto,(百分比:常规流中,如果父元素的height属性为auto,则子元素height设置为百分比会被忽略。)
- padding,(百分比:无论是垂直或水平方向,均是相对于父元素的宽度,常规流中和设置浮动的情况下,相对于父元素content-box的宽度;绝对定位时,相对于包含块padding-box的宽度。)
- border,可以用来画三角形(宽高为0,相邻border为存在且透明)
- margin,可以用来实现水平居中(左右auto),注:垂直方向上相邻两个盒子的margin会发生塌陷
- box-sizing:border-box,盒子宽高包含border和padding
- overflow,内容超出宽高时的设置,visible\hidden\scroll
- 块级盒子,适用以上所有盒模型属性,dispaly:block
- 行级盒子,盒模型中width、height不适用,display:inline,(display:inline-block,本身是行盒,但拥有快盒的宽高设置)
- 确定盒子位置的三种模式:常规流、浮动、绝对定位
常规流
- 除根元素、浮动元素、绝对定位元素之外的其他元素都在常规流中
- 常规流排版方式:
- 块级BFC:特定条件(根、浮动、绝对定位、inline-block、overflow不为visible的块盒、flex子项、Grid子项)容器,从上到下排列,上下margin合并, BFC与外部盒子互不影响,BFC和浮动元素不会重叠
- 行级IFC:只包含行盒的容器,从左到右排列,text-align水平对齐,vertical-align垂直对齐
- 表格布局
- flexbox,可以控制子元素排版,justify-content\align-items设置水平垂直居中,一维布局方式
- Grid布局,二维布局方式
- display:grid生成块级栅格容器,grid-template划分网格,设置每个子项占哪些行/列
- columns设置每列的长度,rows每行的高度
- auto值为自动填充剩下的,fr值为剩余空间分配比例
- grid-area设置区域划分,
行开始/列开始/行结束/列结束
- 浮动排版方式,左右浮动,通常用于文字环绕图片
- 绝对定位
- position:static\relative\absolute\fixed(相对于viewport视口位置)