范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

CSS的未来CascadeLayers(CSSlayer)

  最近在 Weekly 邮件推送中查阅到这样的一条信息:
  Chromium 团队宣布他们将随 Chromium 99(预计在明年 3 月发布)一起发布CSS Cascade Layers
  会发现这条信息里面出现了一个CSS的新名词 CSS Cascade Layers ,出于好奇以及对新知识的渴望(说得我自己都信了,哈哈),于是查阅起CSS Cascade Layers 的相关资料,试图搞懂它。
  前置知识 at-rule规则
  at-rule 规则, CSS Conditional Rules Module Level 3 新增的规则,是一条语句,它为CSS提供了执行或如何执行的指令,常见的at-rule 规则有:@import,允许用户从其他样式表导入样式规则
  @font-face,允许我们引用自定义的字体
  @keyframes,声明一个动画
  @media,是条件CSS中的一种,其条件是一个媒体查询
  @supports,测试用户代理是否支持CSS属性/值对
  @viewport,用来控制移动设备上的viewport设置Cascading and Inheritance Level
  级联(层叠)与继承 经过多年的发展迭代,目前已有多个版本(CSS2.2、Level3、Level4 和 Level5 )
  何为级联(层叠)?
  层叠本质就是定义了如何合并来自 多个源 的属性值的算法,简单来说,CSS规则的顺序很重要。当两条同级别的规则应用到一个元素的时候,写在后面的就是实际使用的规则。 h1 {      color: red;  } h1 {      color: blue;  }
  两条规则 优先级相同 ,所以顺序在最后的生效, h1 是color:blue "胜出",显示蓝色。
  只有CSS声明,就是属性名值对,会参与层叠计算。这表示包含CSS声明以外实体的@规则不参与层叠计算,如包含描述符的@font-face,@规则( at-rule规则 )是做为一个整体参与层叠计算。
  css属性一般来自于哪几个源?
  1、用户代理样式表:浏览器的基本的样式表,用于给所有网页设置默认样式。
  2、用户样式表:网页的作者可以定义文档的样式。大多数情况下此类型样式表会定义网站的主题。
  3、浏览器的用户使用自定义样式表定制使用体验。
  层叠(级联)算法如何过滤来自不同源的css规则?
  相互冲突的声明按以下顺序适用,后一种声明将覆盖前一种声明:
  1、用户代理样式表中的声明(浏览器的默认样式)。
  2、用户样式表中的常规声明(用户设置的自定义样式,就如同我们的reset.css)。
  3、作者样式表中的常规声明(开发人员设置的样式)。
  4、作者样式表中的!important声明
  5、用户样式表中的!important 声明
  过滤来自不同源的css规则后,确定同源优先级高低,决定谁"优胜"   !important > 内联style > #id > .class > 标签
  了解级联算法有助于帮助我们理解浏览器是如何解决样式规则冲突,也就是浏览器决定哪个样式规则运用到元素上,更多相关 css级联 的了解:
  何为继承?
  当元素的一个继承属性没有指定值时,则取父元素的同属性的计算值 。只有文档根元素取该属性定义的默认值,类似的属性有 color 、font-size 等 。
  CSS是由 Cascading Style Sheets 三个词的首字母缩写,很多人将其称为层叠样式表或者级联样式表 .@layer
  CSS Cascade Layers ,也叫做CSS级联层 ,是Cascading and Inheritance Level5  规范中新增了一个新的 CSS 特性,对应的CSS属性写法@layer ,即一个新的 @ 规则,也就是大家所说的at-rule  规则。
  为啥会出现@layer?
  通过上面我们对 级联 介绍,我们已经看到了顺序对于层叠的重要性,同权重的css属性后者会"优胜"前者,权重不同会根据CSS声明来源和优先级算法来判断谁"优胜"。!important 的CSS规则自动将它跳到层叠算法的前面,能够覆盖普通规则的层叠。
  也就是说我们一般会使用选择器权重和顺序作为控制级联的方法,但是这样却会时常碰到:
  使用较高权重的选择器来防止你的代码被后面的代码(或别人的代码)覆盖。但这也会引起另一个不良的现象,可能会在代码中新增很多带有 !important 的样式规则,这本身就会引起更多的问题,比如  !important  在 CSS 样式表中随处可见,需要覆盖的时候难以被覆盖 。
  使用较低权重的选择器又很容易被后面的代码(或别人的代码)覆盖。比如你在引入第三方代码库或组件时,自己的代码可能被覆盖。
  这两个现象也是编写CSS代码,特别是在一个大型项目或多人协作的项目中常出现。也给很多CSS开发者带来很多困扰。
  虽然社区有很多第三方方案,如 CSS-in-JS 、CSS Modules  和 CSS Scoped 等来协助解决级联所带来的问题,但由于源码顺序(打包产物)仍然起着决定性的作用,顺序带来的覆盖和冲突依旧未真正的解决,而且选择器权重仍然比层的顺序(源码顺序)更重要。
  这样的背景促进了 @layer 的出现,要真正的解决级联带来的这些问题。
  @layer 的出现,也要求我们对以往css级联 有个新的了解,
  可以看出 CSS的级联层 一般位于"Style 属性"(Style Attribute)和 CSS 选择器权重(Specificity)之间。
  使用 CSS级联层 ,可以通过@layer  at-rule将 CSS 分成多个层。
  与 CSS属性来源 在用户样式表和作者样式表风格之间提供权衡的方式相同,Cascade Layers 提供了一种结构化的方式来组织和权衡单个 来源 内的关注点
  如何使用 创建级联层
  级联层可以通过多种方式声明:
  1、使用@layer 块规则,并立即为其分配样式: @layer reset {   * { /* Poor Man"s Reset */     margin: 0;     padding: 0;   } }
  2、使用规则@layer 语句,没有指定任何样式: @layer reset;
  3、将@import 与layer关键字或layer()函数一起使用 @import(reset.css) layer(reset);
  以上每一个都创建了一个名为 的级联层reset。 管理级联层
  级联层会按它们声明的顺序排序。
  在下面的例子中,我们建立四个级联层: reset,base,theme,和utilities 。@layer reset { /* 创建级联层 "reset" */   * {     margin: 0;     padding: 0;   } }  @layer base { /* 创建级联层 "base" */   … }  @layer theme { /* 创建级联层 "theme" */   … }  @layer utilities { /* 创建级联层 "utilities" */   … }
  按照它们的声明顺序,层顺序变为:
  reset
  base
  theme
  utilities
  重复使用级联层名称时,样式将附加到现有级联层。级联层的顺序保持不变,因为只有第一次的出现已经确定顺序: @layer reset { /* 创建第一个级联层 "reset" */   … }  @layer base { /* 创建第二个级联层 "base" */   … }  @layer theme { /* 创建第三个级联层 "theme" */   … }  @layer utilities { /* 创建第四个级联层 "utilities" */   … }  @layer base { /* 会将样式添加至级联层"base" */   … }
  重新使用级联层名称时层顺序保持不变的使@layer 语法变得更加方便和严谨。使用它,可以预先建立图层顺序,然后将所有 CSS 附加到它: @layer reset;     /* 创建第一个级联层 "reset" */ @layer base;      /* 创建第二个级联层 "base" */ @layer theme;     /* 创建第三个级联层"theme" */ @layer utilities; /* 创建第四个级联层 "utilities" */  @layer reset { /* 添加样式至级联层 "reset" */   … }  @layer theme { /* 添加样式至级联层  "theme" */   … }  @layer base { /* 添加样式至级联层  "base" */   … }  @layer theme { /* 添加样式至级联层  "theme" */   … }
  当然你可以用更短的语法来声明级联层, @layer reset, base, theme, utilities;
  从上面可以看出,多个级联层被声明时,最后一个级联层的声明会获胜。像这样, @import(reset.css) layer(reset); /* 第一个级联层 */  @layer base { /* 第二个级联层 */   form input {     font-size: inherit;    } }  @layer theme { /*第三个级联层 */   input {     font-size: 2rem;   } }
  按以往CSS级联来进行分析的话, form input (多层级)的优先级会大于input ,但是由于级联层 所起的作用,@layer theme 的input 会取胜。级联层嵌套
  级联层 支持嵌套使用,如下:@layer base { /* 第一个级联层*/   p { max-width: 70ch; } }  @layer framework { /* 第二个级联层 */   @layer base { /* 第二级联层的嵌套子级联层1 */     p { margin-block: 0.75em; }   }    @layer theme { /* 第二级联层的嵌套子级联层2 */     p { color: #222; }   } }
  在这个例子中有两个级联外层:
  base
  framework
  该framework层本身也包含两层:
  base
  theme
  就像一棵树,像这样,
  如果要将样式附加到嵌套级联层,需要使用以下全名来引用它, @layer framework {   @layer default {      p { margin-block: 0.75em; }   }    @layer theme {     p { color: #222; }   } }  @layer framework.theme {   /* 这些样式会被添加到@layer framework层里面的theme层 */   blockquote { color: rebeccapurple; } } @media与@layer@media (min-width: 30em) {   @layer layout {     .title { font-size: x-large; }   } }  @media (prefers-color-scheme: dark) {   @layer theme {     .title { color: white; }   } }
  如果第一个 @media (min-width: 30em) 匹配(基于视口尺寸),则layout级联层层将在图层顺序中排在第一位。如果只有@media (prefers-color-scheme: dark) 匹配,theme则将是第一层。
  如果两者匹配,则图层顺序将为layout, theme。如果没有匹配,则不定义层。 结语
  随着  Cascade Layers  的出现,我们的开发人员将拥有更多的工具来控制 Cascade 。Cascade Layers  的真正力量来自它在 Cascade 中的独特位置:Style 属性(Style Attribute) 和 CSS 选择器权重(Specificity) 之间。因此,我们不需要担心其他层中使用的 CSS 的选择器特异性,也不需要担心我们将 CSS 加载到这些层中的顺序.
  了解到这里,是不是觉得 @layer 相当地cool,迫不及待地想去使用了,我们看一下caniuse  @layer 的兼容情况,
  很遗憾,支持程度惨不忍睹,想真正使用可能还要再等等,对于明年三月份  Chromium 99 ,发布我们拭目以待。
  当然现在如果想尝鲜,对于社区也有给出一些办法,
  大家也可以试一试,感谢阅读!

香奈儿在与华为商标纠纷中败诉,法院双方LOGO不会混淆四年前,华为申请了一个智慧生活的Logo,这个Logo从外形上看像是华为HUAWEI的首字母H,又像是两个U上下相交。不过这个Logo在申请的时候被香奈儿起诉了,表示图标设计元素和海豚售价9。38万元起欢迎莅临赏鉴纯电新物种海豚正式上市!综合补贴后售价9。38万元12。18万元!海豚是海洋车系的首款车型,也是首款采用海洋美学设计理念的车型,首款基于e平台3。0打造的车型。搭载DiLink3。鹿晗工作室注册公益商标一起踢球吧众所周知,明星是社会的高收入人群,近年来,越来越多的明星选择投身于公益事业,用自己的财力和影响力为社会贡献一份力量。其中,鹿晗作为一名曼联球迷,多次在国内参加足球相关的宣传活动,也一举一动皆是热点?商家抢注赵丽颖冯绍峰商标要说近几日娱乐圈最大的瓜,那就是赵丽颖和冯绍峰的新闻了。两人离婚的消息一出,立马登上微博热搜第一,足以证明两人的知名度之高。小知查询天眼查App显示,赵丽颖已被多家公司申请注册商标从400到170再到952,骚扰电话永不消亡销售是从被他人拒绝开始的流传甚广的毒鸡汤如果疫情在今年年初有任何积极影响的话,则必须说一说骚扰电话工信部透露,今年一季度12321(不良网络和垃圾邮件报告接收中心)共收到了100,加拿大局势恶化,再次做出错误决定!孟晚舟归国再拖一年?摘要由于质量问题,中国大幅取消了加拿大菜籽的进口,加拿大因此损失了超过50亿加元。既然加拿大再次做出了错误的决定,局势会继续恶化吗?加拿大对华出口产品被发现有害物质CNPC。com干货!商标无效宣告的理由有哪些呢?要想获得商标法的保护,就必须要进行商标注册,但是并不是所有的标志都能注册为商标的,如果违反了商标规定,商标申请就会被驳回。甚至就算商标注册成功了,那么也会被他人提出商标无效宣告。那小鸣单车破产清算,商标被多次拍卖作为国内早期最先尝试共享单车模式的小鸣单车,他已经从公众眼中销声匿迹了很长一段时间。然而最近,小鸣单车再次有了新消息,却是小鸣单车正在破产清算和拍卖商标的消息。小鸣单车的运营公司广干货商标注册全流程需要多久呢?商标注册量不断上升,但是商标局的审查员是有限的,因此,大家提交的商标申请是不可能马上进行审查的,而是需要一定的时间。虽然,现在的商标注册周期比起原先大大缩短了,那么大概还需要多长的干货商标争议和商标异议有区别吗?商标异议在商标注册过程中是很常见的,而商标争议也是很常见的商标纠纷,但是有很多小伙伴不清楚商标争议和商标异议的概念和他们的区别。今天小知就来帮大家整理整理。大家在了解某两个名词时首喜茶诉熹茶商标侵权,获赔4万元作为奶茶界的网红鼻祖芝士茶的缔造者,喜茶圈粉无数,芝芝梅梅芝芝芒芒多肉葡萄系列十分火爆,其标志性的小人喝茶形象也深入人心,可以说看到这样一个图我们就能将其和喜茶联系到一起。喜茶诉熹
分享几个IT网络和安全的学习平台,挑战不一样的职业IT运维1极客学院网址极客学习平台中国专业的IT职业在线教育平台极客学院,专业的IT职业在线教育平台,上面有海量的IT教学视频,可以搜索到您想要的技术课程,只要课程没有标记VIP字同为天玑8100处理器,这三款手机该怎么选?进入2022年的以来,2000元档的手机竞争是非常激烈的。这个价格档位不仅有着各大手机厂商在去年发布的旗舰手机,更有着极具性价比的新机型,可供选择的手机型机型数量高达二十多款。就小原来汇编中的循环是这么玩儿的汇编系列其实也在一直更新,只不过更新的频率会挺慢的由于白天一直忙于工作,空闲时间还要看书学习各种技术栈,早上也要抽时间早期健身,晚上回家还要陪家人学习,时间安排的满满当当,所以我就盘点自己用过的那些手机2001年,抓住了bp机时代的尾巴,我有幸拥有了一台汉显bp机,啥牌子型号都忘了,只记得是蓝色的,号码也忘了,只记得拨95950呼转。2003年,我拥有了第一台手机,夏新彩蝶A6,手机发热耗电快怎么办?教你一招,只要打开这两个开关轻松解决我们的手机,玩一段时间之后,手机的背面就会发热,而且耗电很快,尤其是在夏天气温高的时候,这种现象呢就会更加的严重,这种状况啊,相信很多朋友都遇到过,但却不知道为什么会出现这种状况,国办鼓励有条件的地区开展新能源汽车和绿色智能家电下乡北京商报讯(记者陶凤吕银玲)4月25日,国务院办公厅发布关于进一步释放消费潜力促进消费持续恢复的意见(以下简称意见),意见要求,充分挖掘县乡消费潜力。建立完善县域统筹,以县城为中心骁龙888和骁龙870对比2021年,高通不满足于发布一款高端芯片组,在短短两个月内推出了第二款800系列处理器。Snapdragon8705G移动平台承诺比2020年的处理器更高的时钟速度,并将为摩托罗拉TCL新品智能锁发布,十大黑科技安全性能倍增昨天家里的门锁又坏了,在家门口等了半天修锁师傅来修,好在晚上的时候修好了,这把锁已经坏了3次了,真的受不了。今天下午不上班,刚好看到了TCL新品发布会,TCL在2022年春季发布会友商又开始作妖,4nm新机降至2969,5000mAh12GB256GB经常关注手机圈的朋友都知道,今年的新机确实很强,基本上款款都是经典。可让人有些看不懂的是,明明新机才刚上市不久却迎来首次降价,这未免也太快了吧,难道骁龙8Gen1芯片就不值钱了?目显卡价格暴跌八九千的游戏本还香不香过去两年多时间,显卡的价格一直因为众所周知的挖矿等原因,在高位很久。新的算法让GPU挖矿没了效率,现在显卡是一天一个价,很多显卡已经接近了官方售价。那么问题来了,在显卡价格高企的时OPPO推出K10系列手机搭载天玑8000Max处理器同步推出联名款式日前在中国市场宣布推出搭载联发科天玑8100Max处理器的OnePlusAce之后,OPPO今日(424)再次针对中国市场推出采用天玑8000Max处理器设计的OPPOK10,以及