CSS New Features

A presentation at CSS New Features in May 2021 in China by w3cplus

Slide 1

Slide 1

F(X) TEAM · 午夜识堂 C S S新特性 @⼤漠# 2 0 2 1 - 0 5 - 1 2 #杭州 × × 联合出品

Slide 2

Slide 2

相关资源 CSS is simple, but not easy! F(X) TEAM · 午夜识堂

Slide 3

Slide 3

F(X) TEAM · 午夜识堂

Slide 4

Slide 4

CSS新特性 F(X) TEAM · 午夜识堂 https://2020.stateofcss.com/en-US/features/

Slide 5

Slide 5

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 6

Slide 6

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 7

Slide 7

CSS 伪类选择器 ① ② ③ ④ :is() vs. :where() :not() vs. :has() :empty vs. :blank :focus-visible vs. :focus-within F(X) TEAM · 午夜识堂

Slide 8

Slide 8

CSS 伪类选择器 — :is() vs. :where() Tweet ⇥ F(X) TEAM · 午夜识堂 CodePen ⇥

Slide 9

Slide 9

CSS 伪类选择器 — :is() vs. :where() F(X) TEAM · 午夜识堂

Slide 10

Slide 10

CSS 伪类选择器 — :is() vs. :where() F(X) TEAM · 午夜识堂

Slide 11

Slide 11

CSS 伪类选择器 — :is() vs. :where() CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 12

Slide 12

CSS 伪类选择器 — :not() vs. :has() F(X) TEAM · 午夜识堂

Slide 13

Slide 13

CSS 伪类选择器 — :not() vs. :has() CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 14

Slide 14

CSS 伪类选择器 — :not() vs. :has() F(X) TEAM · 午夜识堂

Slide 15

Slide 15

CSS 伪类选择器 — :empty vs. :blank F(X) TEAM · 午夜识堂

Slide 16

Slide 16

CSS 伪类选择器 — :empty vs. :blank CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 17

Slide 17

CSS 伪类选择器 — :empty vs. :blank CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 18

Slide 18

CSS 伪类选择器 — :focus-visible vs. :focus-within F(X) TEAM · 午夜识堂

Slide 19

Slide 19

CSS 伪类选择器 — :focus-visible vs. :focus-within CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 20

Slide 20

CSS 伪类选择器 — :focus-visible vs. :focus-within Image URL ⇥ F(X) TEAM · 午夜识堂

Slide 21

Slide 21

CSS 伪类选择器 — :focus-visible vs. :focus-within Codepen ⇥ F(X) TEAM · 午夜识堂

Slide 22

Slide 22

CSS 伪类选择器 — :focus-visible vs. :focus-within Codepen ⇥ F(X) TEAM · 午夜识堂

Slide 23

Slide 23

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 24

Slide 24

CSS 颜⾊ Codepen ⇥ F(X) TEAM · 午夜识堂

Slide 25

Slide 25

CSS 颜⾊ F(X) TEAM · 午夜识堂

Slide 26

Slide 26

CSS 颜⾊ F(X) TEAM · 午夜识堂

Slide 27

Slide 27

CSS 颜⾊ F(X) TEAM · 午夜识堂

Slide 28

Slide 28

CSS 颜⾊ F(X) TEAM · 午夜识堂

Slide 29

Slide 29

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 30

Slide 30

CSS 背景 — background-position F(X) TEAM · 午夜识堂

Slide 31

Slide 31

CSS 背景 — background-position F(X) TEAM · 午夜识堂

Slide 32

Slide 32

CSS 背景 — background-position Codepen ⇥ F(X) TEAM · 午夜识堂

Slide 33

Slide 33

CSS 背景 — background-repeat F(X) TEAM · 午夜识堂

Slide 34

Slide 34

CSS 背景 — background-repeat Codepen ⇥ F(X) TEAM · 午夜识堂

Slide 35

Slide 35

CSS 背景 — background-repeat Codepen ⇥ F(X) TEAM · 午夜识堂

Slide 36

Slide 36

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 37

Slide 37

CSS masking & clipping F(X) TEAM · 午夜识堂

Slide 38

Slide 38

CSS masking & clipping Codepen ⇥ F(X) TEAM · 午夜识堂

Slide 39

Slide 39

CSS masking & clipping mask-image Codepen ⇥ F(X) TEAM · 午夜识堂

Slide 40

Slide 40

CSS masking & clipping Codepen ⇥ F(X) TEAM · 午夜识堂

Slide 41

Slide 41

CSS masking & clipping Clippy ⇥ F(X) TEAM · 午夜识堂

Slide 42

Slide 42

CSS masking & clipping CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 43

Slide 43

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 44

Slide 44

CSS 混合模式 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 45

Slide 45

CSS 混合模式 原图 SVG Path CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 46

Slide 46

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 47

Slide 47

CSS ⾃定义属性 F(X) TEAM · 午夜识堂

Slide 48

Slide 48

CSS ⾃定义属性 当⼀个⾃定义属性的值是initial时,var()函数不能使⽤它进⾏替换。除⾮ 指定了⼀个有效的回退值,否则会使声明在计算值时⽆效。 W3C ⇥ F(X) TEAM · 午夜识堂

Slide 49

Slide 49

CSS ⾃定义属性 F(X) TEAM · 午夜识堂

Slide 50

Slide 50

CSS ⾃定义属性 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 51

Slide 51

CSS ⾃定义属性 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 52

Slide 52

CSS ⾃定义属性 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 53

Slide 53

CSS ⾃定义属性 F(X) TEAM · 午夜识堂

Slide 54

Slide 54

CSS ⾃定义属性 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 55

Slide 55

CSS ⾃定义属性 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 56

Slide 56

CSS ⾃定义属性 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 57

Slide 57

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 58

Slide 58

CSS 等比缩放(aspect-ratio) F(X) TEAM · 午夜识堂

Slide 59

Slide 59

CSS 等比缩放(aspect-ratio) F(X) TEAM · 午夜识堂

Slide 60

Slide 60

CSS 等比缩放(aspect-ratio) CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 61

Slide 61

CSS 等比缩放(aspect-ratio) CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 62

Slide 62

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 63

Slide 63

CSS 滚动捕捉 F(X) TEAM · 午夜识堂

Slide 64

Slide 64

CSS 滚动捕捉 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 65

Slide 65

CSS 滚动捕捉 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 66

Slide 66

CSS 滚动捕捉 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 67

Slide 67

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 68

Slide 68

CSS Gap F(X) TEAM · 午夜识堂

Slide 69

Slide 69

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 70

Slide 70

CSS 逻辑属性 F(X) TEAM · 午夜识堂

Slide 71

Slide 71

CSS 逻辑属性 F(X) TEAM · 午夜识堂

Slide 72

Slide 72

CSS 逻辑属性 F(X) TEAM · 午夜识堂

Slide 73

Slide 73

CSS 逻辑属性 F(X) TEAM · 午夜识堂

Slide 74

Slide 74

CSS 逻辑属性 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 75

Slide 75

CSS 逻辑属性 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 76

Slide 76

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 77

Slide 77

CSS 媒体查询 F(X) TEAM · 午夜识堂

Slide 78

Slide 78

CSS 媒体查询 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 79

Slide 79

CSS 媒体查询 F(X) TEAM · 午夜识堂

Slide 80

Slide 80

CSS 媒体查询 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 81

Slide 81

CSS 媒体查询 F(X) TEAM · 午夜识堂

Slide 82

Slide 82

CSS 媒体查询 F(X) TEAM · 午夜识堂

Slide 83

Slide 83

CSS 媒体查询 F(X) TEAM · 午夜识堂

Slide 84

Slide 84

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 85

Slide 85

CSS 比较函数 min()/max()/clamp() F(X) TEAM · 午夜识堂

Slide 86

Slide 86

CSS 比较函数 min()/max()/clamp() CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 87

Slide 87

CSS 比较函数 min()/max()/clamp() CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 88

Slide 88

CSS 比较函数 min()/max()/clamp() CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 89

Slide 89

CSS 比较函数 min()/max()/clamp() F(X) TEAM · 午夜识堂

Slide 90

Slide 90

CSS 比较函数 min()/max()/clamp() F(X) TEAM · 午夜识堂

Slide 91

Slide 91

CSS 比较函数 min()/max()/clamp() F(X) TEAM · 午夜识堂

Slide 92

Slide 92

CSS 比较函数 min()/max()/clamp() F(X) TEAM · 午夜识堂

Slide 93

Slide 93

CSS 比较函数 min()/max()/clamp() CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 94

Slide 94

CSS 比较函数 min()/max()/clamp() CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 95

Slide 95

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 96

Slide 96

CSS 内容可⻅性content-visibility F(X) TEAM · 午夜识堂

Slide 97

Slide 97

CSS 内容可⻅性content-visibility F(X) TEAM · 午夜识堂

Slide 98

Slide 98

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 99

Slide 99

CSS 外在尺⼨ vs. 内在尺⼨ F(X) TEAM · 午夜识堂

Slide 100

Slide 100

CSS 外在尺⼨ vs. 内在尺⼨ 由元素内部内容来决定: ①m i n - c o n t e n t ②m a x - c o n t e n t ③f i t - c o n t e n t F(X) TEAM · 午夜识堂

Slide 101

Slide 101

CSS 外在尺⼨ vs. 内在尺⼨ CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 102

Slide 102

CSS 外在尺⼨ vs. 内在尺⼨ CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 103

Slide 103

CSS 外在尺⼨ vs. 内在尺⼨ CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 104

Slide 104

CSS 外在尺⼨ vs. 内在尺⼨ CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 105

Slide 105

CSS 外在尺⼨ vs. 内在尺⼨ fit-content 相当于mincontent 和 max-content,其 取值: ① 如果元素的可⽤空间(Available)充⾜,fit-content 将使 ⽤ max-content ② 如果元素的可⽤空间(Available)不够充⾜,比 maxcontent ⼩点,那就是⽤可⽤空间的值,不会导致内容溢出 ③ 如果元素的可⽤空间(Available)很⼩,比 min-content 还⼩,那就使⽤ min-content F(X) TEAM · 午夜识堂 imgURL ⇥

Slide 106

Slide 106

CSS 外在尺⼨ vs. 内在尺⼨ min/max/fit-content使⽤: ① min/max/fit-content ⽤于 flex-basis ⽆效 ② fit-content ⽤于设置⽹格轨道尺⼨的属性上⽆效 ③ ⽹格项⽬或Flex项⽬上显式设置width:fit-content也⽆效,因为它们的默认宽度是mincontent ④ 最好不要在 min-width 或 max-width 上使⽤ fit-content,易造成混乱,建议在 width 上使⽤fit-content F(X) TEAM · 午夜识堂

Slide 107

Slide 107

CSS新特性 ① CSS伪类选择器 ⑨ CSS Gap(沟槽) ② CSS颜⾊ ⑩ CSS逻辑属性 ③ CSS背景 ⑪ CSS媒体查询 ④ CSS蒙层和剪切 ⑫ CSS比较函数 ⑤ CSS混合模式 ⑬ CSS内容可⻅性 ⑥ CSS⾃定义属性 ⑭ CSS外在尺⼨和内在尺⼨ ⑦ CSS等比缩放 ⑮ CSS的Display ⑧ CSS滚动捕捉 F(X) TEAM · 午夜识堂

Slide 108

Slide 108

CSS 的display F(X) TEAM · 午夜识堂

Slide 109

Slide 109

CSS 的display F(X) TEAM · 午夜识堂

Slide 110

Slide 110

CSS 的display 设置了display: contents的元素⾃⾝将不会 产⽣任何盒⼦,但是它的⼦元素能正常展⽰ https://www.w3.org/TR/css-display-3/#box-generation F(X) TEAM · 午夜识堂

Slide 111

Slide 111

CSS 的display F(X) TEAM · 午夜识堂

Slide 112

Slide 112

CSS 的display 设置了display: contents的 元素本身不会被渲染,但是 其⼦元素能够正常被渲染 CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 113

Slide 113

CSS 的display 可以让非⽹格容器或Flexbox容器的⼦元素顺利变成⽹格项⽬或Flex项⽬ F(X) TEAM · 午夜识堂

Slide 114

Slide 114

CSS 的display F(X) TEAM · 午夜识堂

Slide 115

Slide 115

CSS 的display CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 116

Slide 116

CSS 的display CodePen ⇥ F(X) TEAM · 午夜识堂

Slide 117

Slide 117

待续… F(X) TEAM · 午夜识堂

Slide 118

Slide 118

THANK YOU F(X) TEAM · 午夜识堂