【青训营】CSS(三)

简介: 【青训营】CSS(三)

选择器特异度 Specificity



特异度也就是优先级,如果设置样式时有多个CSS选择器同时指向一个元素,那么优先级高的选择器的元素样式会最终应用到这个元素上。

当然!important优先级是最高的,没有这个属性就可以从id,(伪)类,标签选择器的数量来判断优先级,如图中 122 > 022,所以第一条优先级高于第二条。


image.png


继承



与面向对象中的继承类似,某些属性会自动继承其父元素的计算值,除非显示指定。

如果一个属性不能被继承,但想要其继承,可以显示继承,如:


* {
  box-sizing: inherit;
}
html {
  /* html所有元素的盒模型都默认为border-box */
  box-sizing: border-box;
}
复制代码

CSS取值过程



CSS中每个属性都有一个初始值,比如:

  • background-color的初始值为transparent
  • margin-left的初始值为0

我们可以使用initial关键字作为属性值显式重置为初始值。

而CSS样式规则应用到DOM树中要经过以下取值过程:

  • filtering:筛选规则,选择器匹配,属性有效,@media匹配等
  • cascading:根据选择器优先级赋值
  • defaulting:属性值为空时,继承或使用初始值
  • resolving:将一些相对值转为绝对值,比如em会被转为px
  • formatting:进一步将关键字以及百分比等转换为绝对值
  • constraining:将px小数转为整数,又或是类似min-height的限制


image.png


布局Layout



当你没有用任何CSS来改变页面布局时,那么网页元素就会排列在一个常规流(normal flow)之中。在常规流中,元素盒子(boxes)会基于文档的写作模式(writing mode)一个接一个地排列,也就是说,如果你的写作模式是水平的(从左往右写),那么常规流会垂直地一个接着一个排列块级元素。


image.png


你写在网页里的任何东西都会生成一个盒子(box),关于盒模型的部分可以看以下文档:



image.png


width height


  • 指定content box的宽高
  • 取值为长度,百分数,auto
  • auto由浏览器根据其它属性决定
  • 百分数相对于容器的content box的宽高
  • 容器有指定高度时,height的百分数才生效


padding


内边距,百分数相对于容器宽度,当有四个值时顺序为上右下左,也就是顺时针


image.png


border


边框粗细,样式,颜色


/* width | style | color */
border: 2px dashed green;
border-width: 1px 2px 3px 4px;
border-style: solid;
boder-color: green blue;
border-left: 1px solid #ccc;
border-left-width: 3px;
border-top-color: #ccc;
复制代码

我们甚至可以用border来画一个三角形


<style>
  div {
    width: 0;
    height: 0;
    border-width: 50px;
    border-style: solid;
    border-color: #f35 transparent transparent transparent;
  }
</style>
<div></div>
复制代码

margin


外边框,百分数相对于容器宽度,与padding类似

目录
相关文章
|
4月前
|
前端开发 JavaScript 开发者
理解CSS | 青训营笔记(3)
理解CSS | 青训营笔记(3)
36 0
|
4月前
|
机器学习/深度学习 编解码 前端开发
理解CSS | 青训营笔记(2)
理解CSS | 青训营笔记
38 0
|
4月前
|
前端开发 容器
理解CSS | 青训营笔记(1)
理解CSS | 青训营笔记
52 0
|
前端开发 容器
理解CSS|青训营笔记
理解CSS|青训营笔记
|
前端开发
Css进阶>>Css3让你玩的开心哦。(一)
Css进阶>>Css3让你玩的开心哦。(一)
80 0
|
前端开发
Css进阶>>Css3让你玩的开心哦。(二)
Css进阶>>Css3让你玩的开心哦。(二)
87 0
|
前端开发 UED 容器
深入CSS盒模型 | 青训营笔记
由内到外分别由内容(content)即蓝色部分,内边距(padding)即绿色部分,边框(border)即浅黄色部分,外边距(margin)即深黄色四大部分组成,下面我将为读者从各个组成部分与盒模型分类两个角度来具体讲解盒模型。
112 1
深入CSS盒模型 | 青训营笔记
|
前端开发
前端知识大全之CSS(上)
CSS是前端的一个重要的组成部分,可以给HTML这个进行化妆起到美化的作用。
80 0
前端知识大全之CSS(上)
|
前端开发
前端知识大全之CSS(下)
CSS是前端的一个重要的组成部分,可以给HTML这个进行化妆起到美化的作用。
120 0
前端知识大全之CSS(下)
|
前端开发
前端知识大全之CSS(中)
CSS是前端的一个重要的组成部分,可以给HTML这个进行化妆起到美化的作用。
84 0
前端知识大全之CSS(中)