深入CSS(一)| 青训营笔记

73 阅读4分钟
这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天✌

课堂笔记


本堂课重点内容:

  1. CSS 选择器的特异度
  2. CSS 继承
  3. CSS 求值过程解析
  4. CSS 布局方式及相关技术

详细知识点介绍

1.选择器特异度(Speeificity)

  • CSS的“层叠”效果: 如果应用了权重均匀的样式,后定义的样式将会覆盖之前定义的样式。

    可以用这一特性进行属性覆盖从而实现代码的重复使用。

  • 权重计算: 将两个具有相同权重的选择器应用于一个元素时,它将算作权重的2倍。 因此,例如,选择了两个类的元素将比CSS中的一个元素具有更高的权重。

举例:

选择器#id.(class类)type(标签)
#nav .list li a:link122
.hd ul .links a022

因为,在 1 中的特异度为 122 大于 在 2 中的特异度为 22 。

所以,在 2 中的选择器的优先级更高。

  • CSS优先级规则 :!important > 内联样式 > ID 选择器(#id{}) > 类选择器(.class{}) = 属性选择器(a[href="segmentfault.com"]{}) = 伪类选择器( :hover{}) > 标签选择器(span{}) = 伪元素选择器( ::before{})= 后代选择器(.father .child{})> 子选择器(.father > .child{}) = 相邻选择器( .bro1 + .bro2{}) > 通配符选择器(*{})

2. CSS 继承

  • 某些属性会⾃动继承其⽗元素的计算值,除⾮显式指定⼀个值。

  • 一般文字、字体相关属性都可以继承,盒模型宽度、高度、边距等都不可以继承。

  1. 显式继承

如果一个属性不可继承,可以使用关键字 inherit 让子元素能从父级继承该属性。

举例:


/* box-sizing 这个属性是不可以继承的。这样设置之后,这个属性就要从父级开始读取。 */
* {
  box-sizing: inherit;
}
 
 /* 如果元素不单独设置 box-sizing 这个属性,那么所有元素都继承 html 的 box-sizing 属性。 */
html {
  box-sizing: border-box;
}

3. 初始值

在 CSS 中,每一个属性都有一个初始值。

// background-color 的初始值为 transparent

background-color: transparent;

// margin-left 的初始值为 0

margin-left: 0;

可使用关键字 initial 将属性显式重置为初始值。

background-color: initial;

//此时的 background-color 为 transparent;

4. CSS 求值过程

image.png

5. CSS 布局与常规

1.相关技术:

1. 常规流:

行级、块级、表格布局、FlexBox、Gird布局

2. 浮动

3. 绝对定位

2.盒模型:
  • width:content box宽度

    height:content box高度

取值均为:

  • 长度

  • 百分数(相对容器content box的长度,容器有指定高度时百分数才凑效)

  • auto(width由浏览器根据其他属性确定,height由内容计算得来)

  • padding:内边距

    • 百分数相对于容器的宽度
    • 四个方向:padding-left、padding-right、padding-bottom、padding-top
  • border:边框

    • 三种属性:border-width、border-style、border-color
    • 四个方向:border-left、border-right、border-bottom、border-top
    • 圆角边框(border-radius)
      •  4个: 左上   右上  右下  左下  (顺时针)
      •  3个: 左上   右上和左下  右下
      •  2个: 左上和右下      右上和左下
      •  1个: 适用于所有四个角
  • margin:外边距   

    • 百分数相对于容器的宽度
    • 四个方向:margin-left、margin-right、margin-bottom、margin-top
    • 取值为:长度、百分数、auto
  • CSS盒模型大小计算

    • W3C标准盒模型

      标准盒模型的width/height不包含padding和border,因此总宽高需要额外加上padding、border和margin的值。

    • IE怪异盒模型

      怪异盒模型width/height中包含padding和border,因此总宽高只用额外加上margin值即可。

    默认使用标准盒模型,也可以通过控制box-sizing属性决定盒模型:border-box代表怪异盒模型、content-box代表标准盒模型。

应用实例

使用margin:auto属性,实现水平居中

  • overflow
    • 对溢出内容的处理
    • visible为overflow 的默认值,为超出显示
    • hidden为超出隐藏
    • auto为自动,即超出会出现滚动条, 不超出就没有滚动条
    • scroll为内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容

课后个人总结

  • 不容易掌握的知识点
    • padding、border、margin的熟练运用
  • 容易混淆的知识点
    • 标准盒和怪异盒大小计算

引用参考

blog.csdn.net/cukw6666/ar…blogsobaiduweb~default-2-107983669.article_score_rank_blog&spm=1018.2226.3001.4450

blog.csdn.net/LAinKH/arti…blogsobaiduend~default-1-121578622-null-null.article_score_rank_blog&utm_term=css%E7%89%B9%E5%BC%82%E5%BA%A6&spm=1018.2226.3001.4450