「趣学前端」@layer,你好,CSS的新特性

简介: 今天分享CSS新特性@layer的学习笔记。

前言

之前开发者大会上,大佬分享@layer这个新特性的时候,就想着要研究一下它的具体用法。

在开始freestyle之前,先来看一下规范:

这是一个实验中的功能。
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

CSS规则

MDN中对CSS规则的定义如下

At-rules是指导 CSS 如何表现的CSS 语句。它们以 at 符号 ' @' ( U+0040 COMMERCIAL AT) 开头,后跟一个标识符,包括直到下一个分号 ' ;' ( U+003B SEMICOLON) 或下一个CSS 块(以先到者为准)的所有内容。

先来看几个眼熟的CSS规则:@media、@font-face、@keyframes、@viewport、@import。

@layer

知识点

@layer声明了一个 级联层, 同一层内的规则将级联在一起, 这给予了开发者对层叠机制的更多控制。

创建级联层的方式有以下三种,支持级联层嵌套和匿名。以下知识点来自MDN

语法

含义

块级创建方式

创建了一个块级的 @规则,其中包含作用于该层内部的 CSS 规则。

通过 @import 来创建

一个级联层同样可以通过 @import 来创建,规则存在于被引入的样式表内。

命名创建方式

可以创建带命名的级联层,但不指定任何样式。

或者,多个命名层也可以被同时定义。

嵌套层

级联层允许嵌套

匿名层

如果创建了一个级联层但并未指定名字,那么则称为创建了一个匿名层。除创建后无法向其添加规则外,该层和其他命名层功能一致。

使用试验

类型

效果展示

实现方案

通过 @import 来创建

级联层样式写在了外部的css文件中,通过@import 引入。

多个命名层

如果同一声明在多个级联层中被指定,最后一层中的将优先于其他层。

非@layer与@layer的优先级

非@layer与@layer拥有相同的属性时,非@layer的优先级更高。

嵌套优先级

嵌套优先级 @layer common 大于 @layer layer3。

把@layer common这个遮住,其实就是非@layer与@layer的优先级,这样是不是好理解了。

匿名优先级

匿名的优先级取决于匿名层所在的位置

1、匿名层在@layer common和@layer layer1

前面时,优先级是@layer common > @layer layer1 > @layer 匿名。

2、匿名层在@layer common和@layer layer1

后面时,优先级是@layer 匿名 > @layer common > @layer layer1 。

3、@layer common > @layer layer1的原因是,多个命名层时,最后一层中的将优先于其他层。

总结

@layer目前还是非标准特性,正式生产不建议使用。

不过试验使用起来,还挺有趣的,今天也特别有收获的一天。

CSS样式真有趣,光写样式我感觉自己能写一天。

偶尔翻出来珍藏的技术书,读几章,有了新想法的感觉真不赖。

目录
相关文章
|
11天前
|
Web App开发 前端开发 JavaScript
揭秘!前端大牛们如何巧妙利用CSS3,打造炫酷视觉效果!
【10月更文挑战第31天】前端开发面临复杂布局的挑战,本文介绍了几种提升开发效率和代码质量的工具和技术。基础的HTML和CSS可以应对大部分布局需求,而Firefox开发者工具、VS Code、Vue、React等则能应对更复杂的布局,帮助开发者构建高性能、用户友好的网页应用。
21 4
|
12天前
|
缓存 前端开发 JavaScript
前端小白也能掌握的高级技巧:如何让你的网页支持PWA特性?
【10月更文挑战第30天】随着互联网技术发展,渐进式网页应用(PWA)成为提升用户体验的重要手段。本文通过一个案例,介绍如何为在线问答社区网页应用添加PWA特性。从创建基本结构、添加Service Worker、创建Manifest文件到测试PWA特性,详细展示了每一步的操作方法。适合前端小白学习参考。
10 2
|
5天前
|
前端开发
css特性
css特性 1.继承性:子级继承父级文字控制属性 ps:子级拥有自己的样式则不会继承父级。 2.层叠性:相同的属性后面覆盖前面,不同的属性叠加 3.优先级:选择器优先级高的样式生效 公式:通配符<标签<类<id<行内样式<!important(选中范围越大,优先级越低) 叠加计算规则:存在复合选择器时,从左向右依次比较个数,同一级个数多的优先级高,如果个数相同,则向后比较;!important权重最高;继承权重最低。
|
30天前
|
前端开发 JavaScript
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
148 1
|
1月前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
1月前
|
前端开发 UED 容器
前端技术分享:利用 CSS Grid 实现响应式布局
【10月更文挑战第1天】前端技术分享:利用 CSS Grid 实现响应式布局
51 2
|
1月前
|
前端开发 JavaScript 容器
前端之CSS基础知识
前端之CSS基础知识
16 0
|
1月前
|
前端开发 容器
【前端基础篇】CSS基础速通万字介绍(下篇)3
【前端基础篇】CSS基础速通万字介绍(下篇)
17 0
|
1月前
|
Web App开发 存储 前端开发
【前端基础篇】CSS基础速通万字介绍(下篇)2
【前端基础篇】CSS基础速通万字介绍(下篇)
18 0
|
1月前
|
前端开发
【前端基础篇】CSS基础速通万字介绍(下篇)1
【前端基础篇】CSS基础速通万字介绍(下篇)
19 0