深入CSS|青训营笔记

32 阅读2分钟

[深入CSS|青训营笔记]

在了解 CSS 基本原理后,本节课进一步深入讨论,通过具体案例对于选择器的特异度展开讲解,在此基础上进一步引出 CSS 继承与布局的话题,对其定义及相关技术分别作出介绍。

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

CSS 选择器的特异度

普通按钮 主要按钮

.btn { display: inline-block; padding: .36em .8em; margin-right: .5em; line-height: 1.5; text-align: center; cursor: pointer; border-radius: .3em; border: none; background: #e6e6e6; color: #333; } .btn.primary { color:#fff; background:#218de6;}

CSS 继承

某些属性会自动继承其父元素的计算值,除非显示指定一个值(文本类属性大多可继承,盒子模型类属性大多不可继承)

例子:

This is a testof inherit

body {font-size: 20px;} p{color: blue;} em{color: red;}
  • box-sizing:inherit显式继承关键词
  • background-color:initial显式重置关键词(重置为初始值)

CSS 求值过程解析

DOM树、样式规则->flitering-声明值>cascading-层叠值>defaulting-指定值>resolving-计算值>formatting-使用值>constraining->实际值

CSS 布局方式及相关技术

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

常规流

  • 行级、块级、表格布局、FlexBox、Grid布局。
  • 盒模型:margin外边距,border边框,padding内边距。
  • width:指定content box宽度;取值为长度、百分数、auto;auto由浏览器根据其他属性确定;百分数相对于容器的content box宽度。
  • height:指定content box高度;取值为长度、百分数、auto;auto由浏览器根据其他属性确定;百分数相对于容器的content box高度;容器有指定的高度时,百分数才生效。
  • padding:指定四个方向(上右下左)的内边距;百分比相对于容器宽度。
  • border:指定容器边框样式、粗细和颜色。
  • margin:指定元素四个方向的外边距;取值可以是长度、百分比、auto;百分比相对于容器宽度。(margin:auto水平居中)

浮动定位

  • 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
  • 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

绝对定位

  • 绝对定位使元素的位置与文档流无关,因此不占据空间。
  • 这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。