编辑
2024-05-22
前端
0
请注意,本文编写于 124 天前,最后修改于 124 天前,其中某些信息可能已经过时。

目录

1. CSS Grid Level 2
2. CSS Container Queries
3. CSS Color Level 4
4. CSS :has() Pseudo-Class
5. CSS Accent-Color
6. CSS Scroll-Linked Animations
7. CSS Logical Properties and Values
8. CSS Nesting
9. CSS Layers
10. Viewport Units

2024年,CSS引入了一些新特性,使得前端开发更加便捷和高效。以下是一些值得关注的CSS新特性:

1. CSS Grid Level 2

CSS Grid Level 2引入了一些新的功能,比如子网格(subgrid)。子网格允许子元素在父网格的上下文中对齐,而不需要在每个子元素中重新定义网格。

css
.container { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto; } .item { display: grid; grid-template-rows: subgrid; }

2. CSS Container Queries

CSS容器查询允许你根据容器的大小应用不同的样式,而不是仅仅基于视口大小。这对组件化开发非常有用。

css
.container { container-type: inline-size; } @container (min-width: 300px) { .element { background-color: lightblue; } }

3. CSS Color Level 4

CSS Color Level 4引入了更强大的颜色管理功能,包括新的颜色函数和颜色空间。

css
.element { color: lch(50% 70 40); background-color: oklch(65% 0.1 180); }

4. CSS :has() Pseudo-Class

:has()伪类选择器允许你选择包含特定后代元素的元素。这在需要父元素根据子元素状态变化时非常有用。

css
form:has(input:invalid) { border: 2px solid red; }

5. CSS Accent-Color

accent-color属性允许你自定义表单控件(如复选框、单选按钮等)的强调颜色。

css
input { accent-color: rebeccapurple; }

6. CSS Scroll-Linked Animations

滚动关联动画使得你可以根据滚动位置触发动画效果。

css
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } .element { animation: fade-in 1s; scroll-timeline: fade-in scroll; }

7. CSS Logical Properties and Values

逻辑属性和值使得你可以更加灵活地定义方向敏感的样式,适用于多语言网站。

css
.element { margin-inline-start: 1rem; padding-block-end: 2rem; }

8. CSS Nesting

CSS Nesting允许你在CSS中嵌套规则,类似于Sass和Less中的嵌套功能。

css
.container { color: black; .item { color: white; &:hover { color: grey; } } }

9. CSS Layers

CSS Layers提供了一种新的方法来管理样式的层叠顺序,从而更好地处理样式的优先级问题。

css
@layer reset, base, theme, utilities; @layer reset { /* Reset styles */ } @layer base { /* Base styles */ } @layer theme { /* Theme styles */ } @layer utilities { /* Utility styles */ }

10. Viewport Units

新增加的视口单位包括lvh, svh, dvh等,用于更好地处理不同情况下视口高度的变化。

css
.element { height: 100svh; }

这些新特性极大地丰富了CSS的功能,使前端开发更加高效和灵活。使用这些新特性时,请确保检查浏览器的兼容性。

本文作者:yaohuiofe

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!