CSS的更新速度很快,每年都会有新的规范发布,其中一些新特性可能并不为常用,但了解这些新特性有助于你在开发过程中选择最合适的解决方案。以下是一些在CSS中比较常见的新特性:
- CSS Variables: 使用自定义属性可以在CSS中创建可以在整个文档中重复使用的变量。
:root {
--main-bg-color: coral;
}
body {
background-color: var(--main-bg-color);
}
- CSS Calc(): 使用calc()可以在值中执行基本数学运算。
.box {
width: calc(100% - 20px);
}
- CSS Shapes: 利用shape属性,可以定义矩形或图片形状的CSS样式。
.box {
shape-outside: circle();
}
- CSS Mix-Blend-Mode: 混合不同图层的时候,可以使用混合模式。
.layer1 {
mix-blend-mode: multiply;
}
- CSS Custom Properties and Values Formats: 自定义属性和值格式允许创建自定义的CSS属性和值类型。
@property --main-text-color {
syntax: '#rrggbb';
inherits: true;
initial-value: #ff00ff;
}
.my-element {
background-color: var(--main-text-color);
}
- CSS Regions: 使用CSS Regions可以控制文本的流动和布局。
article {
flow-from: region-1;
flow-into: region-2;
}
#region-1 {
region-fragment: region-after;
}
- CSS Filters: 提供各种图像效果,如模糊,对比度调整等。
img {
filter: blur(5px);
}
- CSS Images: 使用CSS Image Values,可以在CSS中直接使用图像。
.icon {
background-image: image('icon.png');
}
- CSS Overflow: 使用新的overflow属性,可以创建自定义的滚动条。
.scrollable {
overflow-y: overlay;
}
- CSS Writing-Mode: 改变文本的书写方向。
.vertical-text {
writing-mode: vertical-rl;
}
- CSS Initial Letter: 初始字母特性允许你设置文本的第一个字母的样式。
p:first-letter {
font-size: 200%;
}
- CSS Initial Value: 初始值特性允许你为属性设置初始值。
.my-element {
padding: initial(padding);
}
- CSS Containment: 控制元素内的渲染,性能优化。
section {
contain: style layout;
}
- CSS Painting: 使用CSS Custom Paint API,可以在Canvas上绘制自定义图形。
ctx.fillStyle = {
paint: 'myPaint'
};
ctx.fillRect(0, 0, 100, 100);
- CSS Type Layout: 使用新的CSS Layout API可以控制文本布局。
.text {
layout-flow: horizontal;
}
- CSS Logical Properties: 使用逻辑属性可以创建对称的布局,无论方向如何改变都可