[ 理解CSS | 青训营笔记 ]

77 阅读2分钟

CSS带来丰富的交互行为和视觉效果,还能精准传递信息

目标

  • 讲解部分CSS知识模块,如布局、层叠上下文等
  • 讲解一些CSS生态相关的知识
  • 提供一个简明的知识脉络

发展史

  1. 1996 CSS1 解决网页排版布局和装饰问题
  2. 1998
    • CSS2 表现与内容分离,HTML负责内容,CSS负责表现
    • CSS2.1 修正、扩展、代替CSS2
  3. 2001 CSS3 模块化发展,提高网站的可维护性以及性能速度

基础知识

层叠(Cascading)和优先级

三大规则(优先度从上往下递减)

  1. 样式表来源:代理<用户<开发者
  2. 选择器:(内联>)id > class > type
  3. 源码位置:越后的优先级越高,因为会覆盖

注意

  • 少用id选择器,id唯一,不利于CSS代码复用
  • 尽量不用!important,这是最高优先级,会削弱灵活性和拓展性
  • 自己的样式加载在引用库后,保证代码生效

继承

属性从父继承到子,可以用inherit关键词作为值指定一个属性从其父元素继承

h1{
font-size:18px;
}
.card{
font-size:14px;
}
h1 .card{
font-size:inherit; /*h1下的card类font-size为18px*/
}

CSS的值和单位

image.png

盒模型

视觉格式化模型的基础

image.png image.png

负外边距

  • 设置左边或顶部的margin,可以把自己拉到与左或上盒子相交
  • 设置右边或底部的margin,可以把右或下盒子拉到与自己相交

布局

概述

CSS3前 常规流、浮动流、定位流 CSS3后 flex弹性盒子布局、grid网格布局、multicol多列布局

常规流

块级盒子和块级格式化上下文

BFC

把父元素或兄元素设为BFC可以避免外边距塌陷

image.png

内联级盒子和内联级格式化上下文

image.png

flex 弹性盒子布局

高效灵活的布局方式 image.png

grid 网格布局

二维布局方式 image.png

flex & grid

image.png

层叠上下文

对HTML的三维构想,将元素沿着垂直屏幕的虚构的Z轴排开

image.png

建议

  • 使用CSS变量或者预处理语言的变量,管理z-index的值
  • 将预设间隔设置为10或100,方便后续的插入

变形 过渡 动画

transform 变形

image.png image.png

transition 过渡

通过指定某些元素属性从一种起始状态,在一段时间以某种变化节奏,过渡到终止形态

image.png

animation 动画

image.png

性能

image.png