1.选择器有哪些?
基础选择器
#id-―ID选择器。Tagname―一类型选择器或者标签选择器。
.class――类选择器。*――通用选择器。该选择器匹配所有元素
组合器
子组合器(>)—―匹配的目标元素是其他元素的直接后代如:.parent >.child。
相邻兄弟组合器(+)――匹配的目标元素紧跟在其他元素后面。如: p +h2。
通用兄弟组合器(~)—一匹配所有跟随在指定元素之后的兄弟元素,如: li.active ~li。
复合选择器 多个基础选择器可以连起来使用,如: h1.page-header。
属性选择器
通过约束属性值,div[data-title="aaa""]
伪类选择器
选中处于某个特定状态或相对于其父级或兄弟元素的位置的元素。如:first-child ,:hover伪元素选择器
匹配在文档中没有直接对应HTMI,元素的特定部分,或插入内容。如 h2:: first-letter, div::before
逻辑选择器
较新的选择器:is( :has() :where( :not()
2.CSS3之前的常用布局
Normal Flow常规流:默认的布局方式
有块级格式化上下文和内联格式化上下文
.Float.浮动流 :用float偶性焦!.脱流,做横向布局
Positioning定位流:用position属性控制
fixed 和absolute脱离文档流可以自由定位、覆盖等
3.CSS3之后的常用布局
Flex弹性盒子布局:Grid.网格布局
Multicol多列布局:...维空间布局
二维空间布局:文本、内容的多列展示
4.格式化上下文的布局规范为
"在一个块格式区域中,盒子会从包含块的顶部开始,按序垂直排列。同级盒子间的垂直距离会由“margin"属性决定。相邻两个块级盒子之间的垂直间距会遵循外边距折叠原则被折叠。 在一个块格式区域中,每个盒子的左外边缘会与包含块左边缘重合(如果是从右到左的排版顺序,则盒子的右外边缘与包含块右边缘重合)。”
5.弹性盒子布局
Flexible Box Layout是为了提供更加高效灵活的布局方式,在即便是宽高未知的情况下,也能排列和分割一个盒子内部的布局。而且在不同布局方向(横向/纵向)的调整更为灵活。