@layer
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2022ë 3ì.
@layer CSS at-ruleì ìºì¤ì¼ì´ë ë ì´ì´ë¥¼ ì ì¸íë ë° ì¬ì©ëë©°, ì¬ë¬ ìºì¤ì¼ì´ë ë ì´ì´ê° ìì ê²½ì° ì°ì ìì를 ì ìíë ë°ë ì¬ì©í ì ììµëë¤.
ìëí´ ë³´ê¸°
@layer module, state;
@layer state {
.alert {
background-color: brown;
}
p {
border: medium solid limegreen;
}
}
@layer module {
.alert {
border: medium solid violet;
background-color: yellow;
color: white;
}
}
<p class="alert">Beware of the zombies</p>
구문
/* 문 @ê·ì¹ */
@layer layer-name;
@layer layer-name, layer-name, layer-name;
/* ë¸ë¡ @ê·ì¹ */
@layer {rules}
@layer layer-name {rules}
- layer-name : ìºì¤ì¼ì´ë ë ì´ì´ì ì´ë¦
- rules : ìºì¤ì¼ì´ë ë ì´ì´ì ìë CSS ê·ì¹ ì§í©
ì¤ëª
ìºì¤ì¼ì´ë ë ì´ì´ ë´ì ê·ì¹ë¤ì í¨ê» ìºì¤ì¼ì´ë©ëë©°, ì¹ ê°ë°ìë¤ìê² ìºì¤ì¼ì´ëì ëí ë ë§ì ì ì´ê¶ì ì ê³µí©ëë¤. ë ì´ì´ìì ì ìëì§ ìì ì¤íì¼ì íì ì´ë¦ì´ ìë ë ì´ì´ì ì´ë¦ì´ ìë ë ì´ì´ìì ì ì¸ë ì¤íì¼ì 무ìí©ëë¤.
ë¤ì ë¤ì´ì´ê·¸ë¨ì 1, 2, ..., N ììë¡ ì ì¸ë ë ì´ì´ì ì°ì ìì를 ë³´ì¬ì¤ëë¤.
ì ì¸ ììê° ì¤ìí©ëë¤. 먼ì ì ì¸ë ë ì´ì´ê° ê°ì¥ ë®ì ì°ì ìì를 ê°ì§ë©°, ë§ì§ë§ì¼ë¡ ì ì¸ë ë ì´ì´ê° ê°ì¥ ëì ì°ì ìì를 ê°ì§ëë¤. ê·¸ë¬ë !important íëê·¸ê° ì¬ì©ëë©´ ì°ì ììê° ë¤ì§íëë¤.
@layer @ê·ì¹ì ì¸ ê°ì§ ë°©ë² ì¤ íëë¡ ìºì¤ì¼ì´ë ë ì´ì´ë¥¼ ìì±íë ë° ì¬ì©ë©ëë¤
첫 ë²ì§¸ ë°©ë²ì @layer ë¸ë¡ @ê·ì¹ì ì¬ì©íì¬ í¹ì ì´ë¦ì ìºì¤ì¼ì´ë ë ì´ì´ë¥¼ ìì±íê³ , ê·¸ ë ì´ì´ ë´ë¶ì CSS ê·ì¹ì í¬í¨íë ë°©ìì
ëë¤. ì를 ë¤ë©´ ë¤ìê³¼ ê°ìµëë¤.
@layer utilities {
.padding-sm {
padding: 0.5rem;
}
.padding-lg {
padding: 0.8rem;
}
}
ë ë²ì§¸ ë°©ë²ì @layer 문 @ê·ì¹ì ì¬ì©íì¬ ì¤íì¼ì í ë¹íì§ ìê³ ì¼íë¡ êµ¬ë¶ë íë ì´ìì ì´ë¦ ìë ìºì¤ì¼ì´ë ë ì´ì´ë¥¼ ìì±íë ê²ì
ëë¤. ìëì ê°ì´ ë¨ì¼ ë ì´ì´ë¥¼ ë§ë¤ ì ììµëë¤.
@layer utilities;
ì¬ë¬ ê°ì ë ì´ì´ë¥¼ í ë²ì ì ìí ìë ììµëë¤. ìëì ê°ì´ ìì±í ì ììµëë¤.
@layer theme, layout, utilities;
ì´ ë°©ë²ì´ ì ì©í ì´ì ë ë ì´ì´ê° ì ì¸ë ììê° ê° ë ì´ì´ì ì°ì ìì를 ëíë´ê¸° ë문ì
ëë¤. ì ì¸ê³¼ ë§ì°¬ê°ì§ë¡, ì¬ë¬ ë ì´ì´ì ê·ì¹ì´ ìë ê²½ì° ë§ì§ë§ì ëì´ë ë ì´ì´ê° ì°ì ê¶ì ê°ì§ëë¤. ë°ë¼ì, ìì ëì¨ ìììì themeì utilitiesì ìì¶©íë ê·ì¹ì´ ìë¤ë©´, utilitiesì ìë ê·ì¹ì´ ì°ì ê¶ì ê°ì§ë©° ì ì©ë©ëë¤.
ì°¸ê³ : ë ì´ì´ ì´ë¦ì ì ì¸íì¬ ìì를 ì¤ì í í, ì´ë¦ì ë¤ì ì ì¸íì¬ í´ë¹ ë ì´ì´ì CSS ê·ì¹ì ì¶ê°í ì ììµëë¤. ì¤íì¼ì í´ë¹ ë ì´ì´ì ì¶ê°ëë©°, ë ì´ì´ì ììë ë³ê²½ëì§ ììµëë¤.
ì¸ ë²ì§¸ ë°©ë²ì ë ì´ì´ ì´ë¦ì í¬í¨íì§ ìê³ @layer ë¸ë¡ @ê·ì¹ì ì¬ì©íì¬ ì´ë¦ ìë ë ì´ì´ë¥¼ ìì±íë ê²ì
ëë¤. ììë ìëì ê°ìµëë¤.
@layer {
p {
margin-block: 1rem;
}
}
ì´ê²ì ìµëª ìºì¤ì¼ì´ë ë ì´ì´ë¥¼ ìì±í©ëë¤. ì´ ë ì´ì´ë ì´ë¦ ìë ë ì´ì´ì ëì¼í ë°©ìì¼ë¡ ìëíì§ë§, ì´íì ê·ì¹ì ì¶ê°í ìë ììµëë¤. ìµëª ë ì´ì´ì ì°ì ììë ì´ë¦ì´ ìë ìë ë ì´ì´ê° ì ì¸ë ììì ë°ë¥´ë©°, ë ì´ì´ ì¸ë¶ìì ì ì¸ë ì¤íì¼ë³´ë¤ ì°ì ììê° ë®ìµëë¤.
ìºì¤ì¼ì´ë ë ì´ì´ë¥¼ ìì±íë ë ë¤ë¥¸ ë°©ë²ì @import를 ì¬ì©íë ê²ì
ëë¤. ì´ ê²½ì° ê·ì¹ì ê°ì ¸ì¨ ì¤íì¼ ìí¸ì í¬í¨ë©ëë¤. @import @ê·ì¹ì @charset ë° @layer ê·ì¹ì ì ì¸í 모ë ì íì ê·ì¹ë³´ë¤ 먼ì ìì¼ íë¤ë ì ì 기ìµíì¸ì.
@import "theme.css" layer(utilities);
ì¤ì²© ë ì´ì´
ë ì´ì´ë ì¤ì²©ë ì ììµëë¤. ììë ìëì ê°ìµëë¤.
@layer framework {
@layer layout {
}
}
framework ë´ë¶ì layout ë ì´ì´ì ê·ì¹ì ì¶ê°íë ¤ë©´ ë ì´ë¦ì .ë¡ ì°ê²°í©ëë¤.
@layer framework.layout {
p {
margin-block: 1rem;
}
}
íì 구문
@layer =
@layer <layer-name>? { <rule-list> } |
@layer <layer-name># ;
<layer-name> =
<ident> [ '.' <ident> ]*
ìì
>ê°ë¨í ìì
ë¤ì ìì ììë ë ê°ì CSS ê·ì¹ì´ ìì±ë©ëë¤. íëë ì´ë¤ ë ì´ì´ìë í¬í¨ëì§ ìì <p> ììì ëí ê·ì¹ì´ê³ , ë¤ë¥¸ íëë typeì´ë¼ë ë ì´ì´ ë´ì .box pì ëí ê·ì¹ì
ëë¤.
ë ì´ì´ê° ìì¼ë©´ ì íì .box pê° ê°ì¥ ëì 구체ì±ì ê°ì§ë¯ë¡, Hello, world!ë ë
¹ìì¼ë¡ íìë©ëë¤. ê·¸ë¬ë type ë ì´ì´ê° ë ì´ì´ ìë ì½í
ì¸ ë¥¼ í¬í¨í기 ìí´ ìì±ë ìµëª
ë ì´ì´ë³´ë¤ 먼ì ì¤ë¯ë¡, í
ì¤í¸ë ë³´ë¼ìì¼ë¡ íìë©ëë¤.
ëí ììì 주목íì¸ì. ë ì´ì´ ìë ì¤íì¼ì 먼ì ì ì¸íììë ë¶êµ¬íê³ ì¬ì í ë ì´ì´ ì¤íì¼ ë¤ì ì ì©ë©ëë¤.
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 ë ì´ì´ë ë¤ë¥¸ ììì ì ìí©ëë¤. specialì´ ë ì´ì´ê° ì ìë ë ë§ì§ë§ì ì¤ê¸° ë문ì ì ê³µíë ììì´ ì¬ì©ëë©° í
ì¤í¸ë rebeccapurpleë¡ íìë©ëë¤. baseìì ì ìë ë¤ë¥¸ 모ë ê·ì¹ì ì¬ì í ì ì©ë©ëë¤.
HTML
<div class="item">
I am displayed in <code>color: rebeccapurple</code> because the
<code>special</code> layer comes after the <code>base</code> layer. My green
border, font-size, and padding come from the <code>base</code> layer.
</div>
CSS
@layer base, special;
@layer special {
.item {
color: rebeccapurple;
}
}
@layer base {
.item {
color: green;
border: 5px solid green;
font-size: 1.3em;
padding: 0.5em;
}
}
ê²°ê³¼
ëª ì¸ì
| Specification |
|---|
| CSS Cascading and Inheritance Level 5> # layering> |