笔记day3 | 青训营

56 阅读3分钟

CSS选择器

选择器的优先级取决于id选择器、伪类选择器、标签选择器的特异度。

继承:某些属性自动继承其父元素的计算值,除非显式指定一个值。

显式继承:inherit,比如box-sizing不可继承,可以通过inherit修改其默认值为可继承。

初始值:每一个属性在未规范时会具有一个初始值,如background-color初始值为transparent、margin-left的初始值为0,可以使用initial关键字显式重置为初始值,background-color:initial。

 

CSS求值过程

    DOM树->filtering获取(声明值)->cascading获取(层叠值)->defaulting获取(指定值)->resolving获取(计算值)->formatting获取(使用值)->constraining获取(实际值)。

 

布局

布局是确定内容的大小和位置的算法,依据元素、容器、兄弟节点和内容等信息来计算。

    布局相关技术:常规流、浮动、绝对定位。常规流里又有行级、块级、表格布局、FlexBox、Grid布局。

    width:指定content box宽度,取值为长度、百分数、auto,百分数相对于容器的高度。

    height:与width类似,容器有指定高度时,百分数才生效。

padding:指定元素四个方向的内边距,百分数相对于容器宽度。

    border:指定边框的粗细、颜色、样式,有三种属性、四个方向。

    margin:设置元素四个方向外边距,使用margin:auto水平居中。

 

常规流

    块级:block 不和其他盒子并列摆放 适用于所有的盒模型属性。

    行级:line 和其他行级盒子一起放在一行或拆开成多行 盒模型中的width、height不适用,即无法指定行级元素的宽高。

    块级元素:生成块级盒子 如body、article、div

    行级元素:生成行级盒子,内容分散在多个行盒中 如span、em

    display属性:block 块级盒子、inline 行级盒子、inline-block 本身是行级,可以放在行盒中;可以设置宽高;作为一个整体不会被拆散成多行。

    行级排版上下文:IFC 只包含行级盒子的容器会创建一个IFC 排版规则:盒子在一行内水平摆放,一行放不下时,换行显示,text-align决定一行盒子的水平对齐,vertical-align决定一个盒子在行内的垂直对齐,避开浮动元素。

    块级排版上下文:BFC 某些容器会创建一个BFC 如根元素,浮动、绝对定位、inline-block,flex子项和grid子项,overflow值不是visible的块级,display:flow-root; 排版规则:盒子从上到下摆放,垂直margin合并,BFC内盒子的margin不会与外面的合并,BFC不会和浮动元素重叠。

    Flex Box:一种新的排版上下文,它可以控制自己盒子的:摆放流向、摆放顺序、盒子的宽度和高度、水平和垂直方向的对齐、是否允许折行。

    Grid布局:display:grid 是元素生成一个块级的grid容器 使用grid-template相关属性将容器划分成网格 设置每一个子项占哪些行。

    绝对定位:position属性:static 默认值,非定位元素、relative 相对于自身位置偏移,不脱离文档流、absolute 绝对定位,相对非static祖先元素定位、fixed 相对于视口绝对定位。

 

个人心得:今天的课程主要是与css有关的内容,详细了介绍了选择器、求值过程以及布局的相关技术的各处细节,如各类属性,各种布局、各种排版的运用情况等,让我加强了对css的灵活运用以及丰富了对一些陌生知识点的了解。