2021年值得了解的10 个 CSS 功能「分享收藏」

在2021年的CSS中,有许多有趣的新特性和增强功能。在这篇文章中,我们将探讨2021年值得了解的10个CSS功能的详细信息。这些功能包括网格、自定义属性、滤镜和动画效果等。

1. CSS网格布局

什么是CSS网格布局?

CSS网格布局是一种新的布局模式,它可以用于创建复杂的网格结构。这个功能使得我们可以使用多个行和列,并且可以自由控制它们之间的间距。CSS网格布局可以用于桌面和移动设备,因为它是响应式设计的一部分。

如何使用CSS网格布局?

要使用CSS网格布局,我们需要在CSS文件中创建一个网格容器和网格项。下面是一个示例,在这个示例中,我们创建了一个三列的网格,每个网格都有一个标题和一些文本。

.grid-container {

display: grid;

grid-template-columns: repeat(3, 1fr);

gap: 20px;

}

.grid-item {

background-color: #ddd;

padding: 10px;

}

上面的代码中,我们创建了一个网格容器`.grid-container`,并在里面定义了一个三列的网格`grid-template-columns`。我们使用`gap`属性来定义每个网格之间的间距。然后我们使用`.grid-item`类来定义每个网格项的样式。

CSS网格布局的优点

CSS网格布局的一个优点是它能够自适应不同的屏幕大小。它可以使我们更容易地进行响应式设计,并且可以轻松地调整布局,以适应各种设备。此外,由于CSS网格布局是内置的,因此我们无需使用复杂的CSS框架或第三方库。

2. 自定义属性

什么是自定义属性?

自定义属性是CSS3的一个新功能,它使我们能够在CSS中定义自定义变量,这些变量可以重复使用。这个功能非常有用,因为它使我们可以更轻松地编辑和自定义CSS,而不用反复地在代码中寻找和更改特定的值。

如何使用自定义属性?

要使用自定义属性,我们需要在CSS文件中定义自定义属性,并在需要使用这些属性的地方调用它们。下面是一个示例,在这个示例中,我们定义了一个自定义颜色属性`--primary-color`,并将其用于一个按钮的背景颜色。

:root {

--primary-color: #fc0;

}

.button {

background-color: var(--primary-color);

color: #fff;

padding: 10px 20px;

}

在上面的代码中,我们定义了一个名为`--primary-color`的自定义属性,并将其指定为黄色`#fc0`。然后,在`.button`类中,我们将这个属性设置为背景颜色,使用`var()`函数来调用它。

自定义属性的优点

自定义属性的一个优点是它可以使我们更轻松地编辑和自定义CSS,而不用反复地在代码中寻找和更改特定的值。这意味着我们可以快速地更改整个网站的主题或样式,而不用在每个样式中单独修改颜色或其他属性。

3. CSS滤镜

什么是CSS滤镜?

CSS滤镜是一组用于调整图像和文本颜色的CSS属性。通过使用滤镜,我们可以改变图像的亮度、对比度、色彩饱和度等,从而为图像添加一些特效。

如何使用CSS滤镜?

要使用滤镜,我们只需要将其应用于需要修改的元素。下面是一个示例,在这个示例中,我们使用`brightness`属性将一张图片调暗。

img {

filter: brightness(60%);

}

在上面的代码中,我们将`brightness`属性设置为60%。这意味着图像的亮度将被减少60%,并且看起来更暗。

CSS滤镜的优点

CSS滤镜的一个优点是它能够为我们的网站添加一些有趣的效果,从而使我们的设计更具创意。它也能够提高我们的视觉设计的质量,使我们的网站更加吸引人。

4. 媒体查询

什么是媒体查询?

媒体查询是CSS中用于根据屏幕大小或设备类型调整样式的一种技术。媒体查询可以使我们根据用户的设备自动调整布局和样式。

如何使用媒体查询?

要使用媒体查询,我们需要在CSS文件中定义条件,以便样式仅应用于特定的屏幕大小或设备。下面是一个示例,在这个示例中,我们使用媒体查询来调整标题的大小和颜色。

h1 {

font-size: 28px;

color: #333;

}

@media (max-width: 768px) {

h1 {

font-size: 24px;

color: #666;

}

}

在上面的代码中,我们在屏幕宽度小于768像素时,将标题字体大小和颜色设置为不同的值。

媒体查询的优点

媒体查询的一个优点是它可以使我们根据用户设备的不同自动调整布局和样式。这样,我们可以为不同的设备类型和屏幕大小提供不同的用户体验,并使我们的网站更易于使用。

5. 动画效果

什么是CSS动画效果?

CSS动画效果是一种可以在网站中添加动态效果的技术,这些效果可以帮助我们向用户传达信息。通过使用CSS动画,我们可以为页面元素添加平滑的过渡和动画效果。

如何使用CSS动画效果?

要使用CSS动画效果,我们需要在CSS文件中创建一个动画,然后使用动画属性将其应用于需要动画的元素。下面是一个示例,在这个示例中,我们创建了一个旋转动画,并将其应用于一个图像。

@keyframes spin {

0% {

transform: rotate(0deg);

}

100% {

transform: rotate(360deg);

}

}

img {

animation: spin 2s linear infinite;

}

在上面的代码中,我们使用`@keyframes`创建一个名为`spin`的动画,该动画使图像以线性方式一直旋转。我们然后将这个动画应用于`img`元素,使用`animation`属性。

CSS动画效果的优点

CSS动画效果的一个优点是它可以增强用户体验,并使我们的网站更具生命力。它也能够使我们的页面更加引人注目,并帮助传达重要信息。

6. 盒子阴影

什么是CSS盒子阴影?

CSS盒子阴影是一种可以应用于网站中任何元素的CSS属性。这种功能可以为元素添加立体感,并为整个页面增加更多的深度和质感。

如何使用CSS盒子阴影?

要使用CSS盒子阴影,我们只需要将阴影属性应用于需要应用的元素。下面是一个示例,在这个示例中,我们在一个div元素上应用了阴影。

div {

box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);

}

在上面的代码中,我们使用`box-shadow`属性将阴影应用于`div`元素。该属性接受四个参数,包括水平偏移量、垂直偏移量、模糊度和颜色。

CSS盒子阴影的优点

CSS盒子阴影的一个优点是它为网站添加了一些立体感,并为整个页面增加了更多的深度和质感。这样,我们可以使页面更加引人注目,并提高用户体验。

7. CSS Grid和Flexbox之间的对比

CSS Grid和Flexbox有什么区别?

CSS Grid和Flexbox是用于在网站中创建布局的两种CSS功能。CSS Grid适用于2D布局,而Flexbox适用于1D布局。CSS Grid是一个更强大的功能,它可以创建更复杂的布局,而Flexbox则更适合简单的布局。

CSS Grid和Flexbox如何使用?

要使用CSS Grid或Flexbox,请在CSS文件中定义一个容器和一个或多个子元素。下面是一个示例,在这个示例中,我们使用CSS Grid来创建一个三行三列的网格。

.grid-container {

display: grid;

grid-template-columns: repeat(3, 1fr);

grid-template-rows: repeat(3, 1fr);

gap: 20px;

}

.grid-item {

background-color: #ddd;

padding: 10px;

}

在上面的代码中,我们创建了一个网格容器`.grid-container`,并在里面定义了三行和三列的网格。我们使用`gap`属性来定义每个网格之间的间距。然后我们使用`.grid-item`类来定义每个网格项的样式。

CSS Grid和Flexbox的优点

CSS Grid和Flexbox的优点是它们能够更轻松地为网站创建布局,从而使我们的网站更具有类型化。使用这些功能,我们可以更轻松地进行响应式设计,并使我们的网站更加易于使用。

8. transitions

什么是CSS过渡?

CSS过渡是一种可以使元素在不同状态之间平滑转换的CSS技术。CSS过渡可以帮助我们为元素添加动态效果,从而使我们的网站更加生动。

如何使用CSS过渡?

要使用CSS过渡,我们需要定义元素的初始状态和最终状态,然后使用`transition`属性将其应用于元素。下面是一个示例,在这个示例中,我们在按钮上应用了一个简单的过渡效果,当用户将鼠标悬停在按钮上时,按钮的颜色将从红色变为绿色。

button {

background-color: red;

color: #fff;

padding: 10px;

border: none;

cursor: pointer;

transition: background-color 0.5s ease;

}

button:hover {

background-color: green;

}

在上面的代码中,我们在`button`元素上定义了一个背景颜色和一个`transition`属性。当用户将鼠标悬停在按钮上时,我们将其背景颜色更改为绿色,并使用`transition`属性中定义的时间和缓动函数使其平滑过渡。

CSS过渡的优点

CSS过渡的一个优点是它可以为元素添加动态效果,从而使我们的网站更加生动。它也可以提高用户体验,并使我们的网站更加有吸引力。

9. CSS伪元素

什么是CSS伪元素?

CSS伪元素是一种用于在网站中添加内容的CSS技术。使用伪元素,我们可以在元素的前面或后面添加一些内容或效果。

如何使用CSS伪元素?

要使用CSS伪元素,我们可以在CSS文件中为伪元素定义样式,并将其应用于需要使用的元素。下面是一个示例,在这个示例中,我们使用CSS伪元素在一个列表项的前面添加了一个点。

li::before {

content: "?";

color: red;

margin-right: 10px;

}

在上面的代码中,我们使用`::before`伪元素在每个列表项的前面添加了一个小圆点。我们使用`content`属性定义元素的内容,并使用`color`属性将其指定为红色。

CSS伪元素的优点

CSS伪元素的一个优点是它可以使我们更轻松地向网站添加一些有趣的内容和效果,从而为网站增加一些创意。它能够提高用户体验,并使我们的网站更加吸引人。

10. CSS过滤器

什么是CSS过滤器?

CSS过滤器是一种可以对图像和其他网站元素进行修改的CSS技术。通过使用过滤器,我们可以修改图像的亮度、饱和度、对比度等,为页面添加一些特殊效果,例如棕褐色或怀旧色。

如何使用CSS过滤器?

要使用CSS过滤器,我们需要为元素定义过滤器属性,然后使用不同的过滤器将其应用于元素。下面是一个示例,在这个示例中,我们使用灰度过滤器将一张图像变成黑白色。

img {

filter: grayscale(100%);

}

在上面的代码中,我们使用`grayscale`属性将图像设置为灰度模式。该属性接受一个百分比的值,从0%到100%,表示图像的灰度程度。

CSS过滤器的优点

CSS过滤器的一个优点是它可以为网