深入CSS|青训营笔记

105 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的第三天

二、深入CSS

选择器的特异度 (Specificity)

2f83cf6401be56498d944197c9c5151.jpg

99e905f94209cf8f7006a864efa48e9.jpg

.btn.primary可以覆盖.btn的属性

继承


e3061a17e95518d8758cd85ed81a895.jpg

显示继承

* {
    box-sizing: inherit;
}

html {
    box-sizing: border-box;
}

.some-widget {
    box-sizing: content-box;
}

inherit 让不可继承的属性变成可继承

初始值

  • CSS中,每个属性都有一个初始值
    • background-color 的初始值为 transparent
    • margin-left 的初始值为 0
  • 可以使用 initial 关键字显式重置为初始值
    • background-color:initial
属性的求值过程流程图

e41033ba396e53164625e5f99015686.jpg

布局

布局(Layout)是什么?

c35c53e9061687967a8fd720f0d5854.jpg

布局的相关技术

6bc45df9c414c09b00e067f158a15bd.jpg

盒模型

3cf9936c24bedce3e905185c9a3b31f.jpg

width

  • 指定 content box 宽度
  • 取值为长度百分数auto
  • auto 由浏览器根据其它属性确定
  • 百分数相对于容器的 content box 宽度

height

  • 指定 content box 高度
  • 取值为长度百分数auto
  • auto 取值由内容计算得来
  • 百分数相对于容器的 content box 高度
  • 容器有指定的高度时,百分数才生效

内边距

470d06aa3ed154055635e9cd1909fdb.jpg

padding

  • 指定元素四个方向的内边距
  • 百分数相对于容器宽度
    57f9451804a82cf05e25ac2b8002564.jpg

border

border 总结

7423595f8b6ced28ae87d1532e681ed.jpg

当四条边框颜色不同的动态例子见以下链接
cdpn.io/webzhao/deb…

margin

  • 指定元素四个方向的外边距
  • 取值可以是长度百分数auto
  • 百分数相对于容器宽度

使用 margin:auto 水平居中

2e61c221e3625fb03b88ae4f4a65e08.jpg

margin collapse

66161b289d5ea4789d942a6e6651314.jpg

margin 在垂直方向有边距合并,取间距大的留下

box-sizing:border-box

fbc32755e509477e234d3d7d35cd307.jpg

07e10a5d4242f24d293d25c24703fe4.jpg .a —— width: 100%
".a"表示的这段文字的宽度为100%
".a"的容器实际占宽超过100%
故而会有溢出屏幕的状况从而生出滚动条

.b —— box-sizing:border-box —— width: 100%
".b"表示的 width: 100% 包含了 border 和 padding 在内
故而内容小于100%

box-sizing:border-box 很常用