深入CSS的一些笔记 |青训营笔记

88 阅读2分钟

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

深入CSS

css能让我们实现一些简单的样式,但是很多东西我们学的好不够深入,它的一些进阶规则我们还是得一一掌握。

css的特异度

当我们使用css来设置样式的时候,可能会存在两个样式的设置包含了同一块区域,这时我们就看css的特异度,特异度高的则优先展示。标签、类(伪类)、id、内联样式分别对应个、十、百、千。

  • 举例:如果有一个内联样式,就相当于特异度为1000.如果有一个id,就意味着是100,两个就是200.

image.png

很显然,上面的特异度是122,下面的特异度为022,因此上面定义的样式优先展示。

继承

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

显示继承

如果一个属性不具备继承性,但你又想让它后代继承的话,可以使用强制继承,但是好像并不推荐。且继承过来的不是设置值,而是计算值。

* {
      box-sizing:inherit; //显性继承
 }
 
 html{
     box-sizing:border-box;
 }
 
 . some-widget{
     box-sizing:content-box;
 }

初始值

  • css中,每一个属性都有一个初始值: background-color的初始值为transparent。 margin-left的初始值为0。

  • 可以使用initial关键字显性重置为初始值:background-color:initial

布局(Layout)

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

布局的相关技术

  • 常规流:行级、块级、表格布局、FlexBox、Grid布局
  • 浮动
  • 绝对定位

width

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

height

语法和width一样:

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

padding

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

image.png

border

  • 指定容器边框样式、粗细、颜色
  • 三种属性:border-width、border-style、border-color
  • 四个方向:border-top\border-right\border-bottom\border-left

margin

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