理解CSS|青训营笔记

184 阅读4分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天,今天学习的内容主要是CSS,以下是本次课程的重点内容:

  • CSS代码构成
  • CSS使用方法
  • CSS流程之选择器组、文本渲染
  • 调试CSS
  • CSS选择器的特异度
  • CSS继承
  • CSS求值过程解析
  • CSS布局方式及相关技术
  • CSS盒模型-行级
  • CSS盒模型-块级

CSS代码构成

CSS的中文名是层叠样式表,它不仅仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化,CSS能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

image.png 以上是CSS最基本的代码构成,即CSS实际上是由一个个选择器构成的,选择器中是具体的属性,对选择的标签进行修饰。

CSS使用方法

CSS一共有三种使用的方法,分别是:
  • 外链
  • 嵌入
  • 内联
我们比较推荐的是外链的写法,能够将内容与样式进行分离。

以下是CSS的工作模式:

image.png

CSS流程之选择器组、文本渲染

选择器是CSS中一个非常重要的概念,可以说是选择器构成了CSS,它能够帮助找出页面中的元素,以便给他们设置样式。选择器的种类也有很多,我们可以按照标签名、类名或者id来选择元素,也可以按照属性选择元素,更可以按照DOM树中的位置进行选择。

一个比较重要的选择器————伪类选择器,它不基于标签和属性定位元素,有两种(状态伪类、结构性伪类)。

组合

  • 直接组合
  • 后代组合
  • 亲子组合
  • 兄弟选择器
  • 相邻选择器

image.png

调试CSS

颜色的表示方法:rgb(包括alpha不透明度)、hsl、命名法(white、black)。

通用字体族:Serif(衬线体)、Sans-Serif(无衬线体)、Cursive(手写体)、Fantasy、Monospace(等宽字体)

font-size:

  • 关键字:small、medium、large
  • 长度:px、em
  • 百分数:相对于父元素字体大小
font-weight:字重 从100——900,其中400也就是我们常说的normal,700也就是bold(粗体) line-height:行高

CSS选择器的特异度

CSS代码实际部署的过程

image.png

CSS继承

CSS求值过程解析

CSS布局方式及相关技术

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

image.png 最基本的一个盒模型示意图:

image.png content-box中设置的width和height实际上只是content的一个高度和宽度。如果不进行box-sizing的设置,那么默认就是content-box。

image.png

image.png

image.png

注意:padding如果四个都设置了那么从前往后四个值依次修饰上右下左,如果只设置了两个值则分别修饰上下和左右。

border:指定容器边框的粗细样式和颜色。

image.png

image.png

当页面中同时存在两个元素(例如div),其中上面的设置了margin-bottom:100px,而上面的设置了margin-top:100px,那么实际上这两个元素上下的间隔并不是200px,而是100px,CSS当中对着一种情况的考虑方法是,取这两个值当中较大的那个值作为这两个元素之间的实际间隔,如下图:

image.png

image.png

border-box中设置的width和height实际上是包括border、padding以及content在内的一个高度和宽度。

margin:auto能够实现水平居中。

当盒模型中已经确定了宽高,而其中的内容可能会超出这个盒模型的范围,这个时候我们可以设置overflow属性来确定是否展示。

image.png

overflow四种属性值:

  • visible:直接强制超出盒模型显示出来
  • hidden:将超出部分截取掉不显示
  • scroll:对于超出的部分可以设置滚动条滚动显示
  • auto:如果超出了就是scroll,没超出就是visible

CSS盒模型-行级

image.png 对于块级盒模型来说,他不能和其他盒子并列摆放,也就是不能够多个盒模型放同一行,但是所有盒模型该有的属性他都有,而行级盒模型,他能够和其他行级盒子一起放在同一行或者是拆开成多行,而对他来说其中的width和height属性都是不适用的。

image.png

行级/块级盒子是CSS中的概念,而行级/块级元素则是HTML当中的概念,

image.png

CSS盒模型-块级

image.png

image.png

附:有关CSS规范的内容

  1. CSS中的一些基本概念
  2. W3C CSS相关的规范
  3. CSS相关文章