@layer
åºçº¿
广æ³å¯ç¨
èª 2022å¹´3æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
å®éªæ§: è¿æ¯ä¸é¡¹å®éªæ§ææ¯
å¨å°å
¶ç¨äºç产ä¹åï¼è¯·ä»ç»æ£æ¥æµè§å¨å
¼å®¹æ§è¡¨æ ¼ã
CSS @è§å ä¸ç @layer 声æäºä¸ä¸ªå±å å±ï¼åä¸å±å
çè§åå°çº§èå¨ä¸èµ·ï¼è¿ç»äºäºå¼åè
对å±å æºå¶çæ´å¤æ§å¶ã
@layer utilities {
/* å建ä¸ä¸ªå为 utilities çå±å å± */
}
è¯æ³
@layer @è§åå¯ä»¥éè¿ä¸ç§æ¹å¼å
¶ä¸æ¥å建å±å å±ã第ä¸ç§æ¹æ³å¦ä¸æ¹ä»£ç æç¤ºï¼å®å建äºä¸ä¸ªå级ç @è§åï¼å
¶ä¸å
å«ä½ç¨äºè¯¥å±å
é¨ç CSS è§åã
@layer utilities {
.padding-sm {
padding: 0.5rem;
}
.padding-lg {
padding: 0.8rem;
}
}
ä¸ä¸ªå±å å±åæ ·å¯ä»¥éè¿ @import æ¥å建ï¼è§ååå¨äºè¢«å¼å
¥çæ ·å¼è¡¨å
ï¼
@import (utilities.css) layer(utilities);
ä½ ä¹å¯ä»¥å建带å½åçå±å å±ï¼ä½ä¸æå®ä»»ä½æ ·å¼ãä¾å¦ï¼åä¸çå½åå±ï¼
@layer utilities;
æè ï¼å¤ä¸ªå½åå±ä¹å¯ä»¥è¢«åæ¶å®ä¹ãä¾å¦ï¼
@layer theme, layout, utilities;
è¿ä¸åæ³å¾æç¨ï¼å ä¸ºå±æå被æå®ç顺åºå³å®äºå®æ¯å¦æä¼å
级ã对äºå£°æèè¨ï¼å¦æåä¸å£°æå¨å¤ä¸ªå±å å±ä¸è¢«æå®ï¼æåä¸å±ä¸çå°ä¼å
äºå
¶ä»å±ãå æ¤ï¼å¨ä¸é¢çä¾åä¸ï¼å¦æ theme å±å utilities å±ä¸åå¨å²çªçè§åï¼é£ä¹ utilities å±ä¸çå°ä¼å
被åºç¨ã
å³ä½¿ utilities å±ä¸è§åç ä¼å
级ä½äº theme å±ä¸çï¼è¯¥è§åä»ä¼è¢«åºç¨ã䏿¦å±å å±é¡ºåºå»ºç«ä¹åï¼ä¼å
级ååºç°é¡ºåºé½ä¼è¢«å¿½ç¥ãè¿å°ä½¿å建 CSS éæ©å¨å徿´å ç®åï¼å ä¸ºä½ ä¸éè¦ç¡®ä¿æ¯ä¸ä¸ªéæ©å¨é½æè¶³å¤é«çä¼å
级æ¥è¦çå
¶ä»å²çªçè§åï¼ä½ åªéè¦ç¡®ä¿å®ä»¬åºç°å¨ä¸ä¸ªé¡ºåºæ´é åçå±å å±ä¸ã
夿³¨ï¼å¨å·²ç»å£°æå±å å±çåååï¼å®ä»¬ç顺åºéå³è¢«ç¡®ç«ï¼ä½ å¯ä»¥éå¤å£°ææå±å å±çå忥åå ¶æ·»å CSS è§åãè¿äºæ ·å¼å°è¢«éå å°è¯¥å±çæ«å°¾ï¼ä¸å±å å±ä¹é´ç顺åºä¸ä¼æ¹åã
å ¶ä»ä¸å±äºä»»ä½ä¸å±å å±çæ ·å¼å°è¢«éä¸å°åä¸å¿åå±ï¼å¹¶ç½®äºææå±çåé¨ï¼è¿æå³çä»»ä½å¨å±å¤å£°æçæ ·å¼é½ä¼è¦çå¨å±å 声æçæ ·å¼ã
åµå¥å±
å±å å±å 许åµå¥ï¼ä¾å¦ï¼
@layer framework {
@layer layout {
}
}
å framework å±å
é¨ç layout å±éå è§åï¼åªéç¨ . è¿æ¥è¿ä¸¤å±ã
@layer framework.layout {
p {
margin-block: 1rem;
}
}
å¿åå±
妿å建äºä¸ä¸ªå±å å±ä½å¹¶æªæå®ååï¼ä¾å¦ï¼
@layer {
p {
margin-block: 1rem;
}
}
é£ä¹å称为å建äºä¸ä¸ªå¿åå±ãé¤åå»ºåæ æ³åå ¶æ·»å è§åå¤ï¼è¯¥å±åå ¶ä»å½åå±åè½ä¸è´ã
å½¢å¼è¯æ³
@layer =
@layer <layer-name>? { <rule-list> } |
@layer <layer-name># ;
<layer-name> =
<ident> [ '.' <ident> ]*
示ä¾
>åºæ¬ç¤ºä¾
䏿¹çä¾åå建äºä¸¤æ¡ CSS è§åãå
¶ä¸ä¸æ¡ä¸º type å±å
é¨ç <p> å
ç´ å建ãå¦ä¸æ¡è§åå建äºå±å å±å¤é¨ï¼ä½ç¨äº .box pã
没æå±å 屿¶ï¼éæ©å¨ .box p å°ä¼ææé«çä¼å
级ï¼å æ¤æå Hello, world! å°è¢«æ¾ç¤ºä¸ºç»¿è²ãå½typeå±åºç¨å¨å¿åå±å建ä¹åæ¶ï¼ææ¬å°ä¼æ¯ç´«è²çã
å¹¶ä¸è¿è¦æ³¨æé¡ºåºï¼å³ä½¿æä»¬å
声æäºnon-layered styleï¼å®ä»ç¶ä¼åºç¨å¨layerå±çº§ä¹åã
HTML
<div class="box">
<p>Hello, world!</p>
</div>
CSS
p {
color: rebeccapurple;
}
@layer type {
.box p {
font-weight: bold;
font-size: 1.3em;
color: green;
}
}
ç»æ
åå·²åå¨çå±ä¸æ·»å è§å
䏿¹çä¾åå建äºä¸¤ä¸ªæ²¡æè§åçå±å å±ï¼éåï¼CSS è§å被添å å°è¿ä¸¤å±ä¸ãbase å±å®ä¹äº colorãborderãfont-size å paddingãspecial å±å®ä¹äºä¸åç color 屿§ãå 为 special å±å¨å®ä¹æ¶æå¨æåï¼å
¶ä¸ç color 屿§å°è¢«åºç¨ï¼æåçé¢è²å°æ¾ç¤ºä¸ºrebeccapurpleãbase å±ä¸çå
¶ä»è§åä»ç¶ææã
HTML
<div class="item">
æä»¥ <code>color: rebeccapurple</code> çæ ·å¼æ¾ç¤ºï¼å 为
<code>special</code> å±å®ä¹å¨ <code>base</code>
å±ä¹åãæç绿è²è¾¹æ¡ãfont-size åå
è¾¹è·æ¥èªäº
<code>base</code> å±ã
</div>
CSS
@layer base, special;
@layer special {
.item {
color: rebeccapurple;
}
}
@layer base {
.item {
color: green;
border: 5px solid green;
font-size: 1.5em;
padding: 0.5em;
}
}
ç»æ
è§è
| è§è |
|---|
| CSS Cascading and Inheritance Level 5 > # layering > |