- CSS 教程
- CSS - 首頁
- CSS - 路線圖
- CSS - 簡介
- CSS - 語法
- CSS - 選擇器
- CSS - 包含
- CSS - 測量單位
- CSS - 顏色
- CSS - 背景
- CSS - 字型
- CSS - 文字
- CSS - 圖片
- CSS - 連結
- CSS - 表格
- CSS - 邊框
- CSS - 塊級邊框
- CSS - 內聯邊框
- CSS - 外邊距
- CSS - 列表
- CSS - 內邊距
- CSS - 游標
- CSS - 輪廓
- CSS - 尺寸
- CSS - 捲軸
- CSS - 行內塊
- CSS - 下拉選單
- CSS - 可見性
- CSS - 溢位
- CSS - 清除浮動
- CSS - 浮動
- CSS - 箭頭
- CSS - 調整大小
- CSS - 引號
- CSS - 排序
- CSS - 定位
- CSS - 連字元
- CSS - 懸停
- CSS - 顯示
- CSS - 獲取焦點
- CSS - 縮放
- CSS - 位移
- CSS - 高度
- CSS - 連字元字元
- CSS - 寬度
- CSS - 不透明度
- CSS - Z-index
- CSS - 底部
- CSS - 導航欄
- CSS - 疊加層
- CSS - 表單
- CSS - 對齊
- CSS - 圖示
- CSS - 圖片庫
- CSS - 註釋
- CSS - 載入器
- CSS - 屬性選擇器
- CSS - 組合器
- CSS - 根元素
- CSS - 盒模型
- CSS - 計數器
- CSS - 剪裁
- CSS - 書寫模式
- CSS - Unicode-bidi
- CSS - min-content
- CSS - all
- CSS - inset
- CSS - isolation
- CSS - overscroll
- CSS - justify-items
- CSS - justify-self
- CSS - tab-size
- CSS - pointer-events
- CSS - place-content
- CSS - place-items
- CSS - place-self
- CSS - max-block-size
- CSS - min-block-size
- CSS - mix-blend-mode
- CSS - max-inline-size
- CSS - min-inline-size
- CSS - offset
- CSS - accent-color
- CSS - user-select
- CSS 高階
- CSS - 網格
- CSS - 網格佈局
- CSS - Flexbox
- CSS - 可見性
- CSS - 定位
- CSS - 層
- CSS - 偽類
- CSS - 偽元素
- CSS - @規則
- CSS - 文字效果
- CSS - 分頁媒體
- CSS - 列印
- CSS - 佈局
- CSS - 驗證
- CSS - 圖片精靈
- CSS - !important
- CSS - 資料型別
- CSS3 教程
- CSS3 - 教程
- CSS - 圓角
- CSS - 邊框圖片
- CSS - 多重背景
- CSS - 顏色
- CSS - 漸變
- CSS - 盒陰影
- CSS - 盒裝飾中斷
- CSS - 游標顏色
- CSS - 文字陰影
- CSS - 文字
- CSS - 2D 變換
- CSS - 3D 變換
- CSS - 過渡
- CSS - 動畫
- CSS - 多列
- CSS - 盒大小
- CSS - 工具提示
- CSS - 按鈕
- CSS - 分頁
- CSS - 變數
- CSS - 媒體查詢
- CSS - 函式
- CSS - 數學函式
- CSS - 遮罩
- CSS - 形狀
- CSS - 樣式圖片
- CSS - 特效性
- CSS - 自定義屬性
- CSS 響應式
- CSS RWD - 簡介
- CSS RWD - 視口
- CSS RWD - 網格檢視
- CSS RWD - 媒體查詢
- CSS RWD - 圖片
- CSS RWD - 影片
- CSS RWD - 框架
- CSS 工具
- CSS - PX 到 EM 轉換器
- CSS - 顏色選擇器和動畫
- CSS 資源
- CSS - 有用資源
- CSS - 討論
CSS - @layer
CSS 的 at 規則`@layer`用於宣告一個級聯層,並且可以額外指定多個級聯層參與時它們的優先順序順序。
layer-name - 級聯層的名稱。
rules - 級聯層中的 CSS 規則集。
描述
級聯層中的樣式會被合併,這為 Web 開發人員提供了對級聯的更多控制。
未分配到層的樣式會分組到一個單一的匿名層中,該層排在所有命名層和未命名層之後。
因此,無論特異性如何,在層外部定義的樣式都優先於層內部的樣式。
可以使用三種不同的方式利用`@layer`at 規則建立級聯層。
-
第一種方法是建立一個具有特定名稱的級聯層,其中包含相應的 CSS 規則。
@layer layer-name {rules} -
另一種方法是建立命名級聯層而無需指定任何樣式。可以同時定義多個層。層宣告的順序決定優先順序;如果多個層中的規則衝突,則最後宣告的層優先。
@layer layer-name; @layer layer-name, layer-name, layer-name;
-
第三種方法是建立級聯層而無需指定名稱。這會建立一個匿名級聯層,其功能與命名層類似。匿名層的優先順序基於其宣告順序。
@layer {rules} -
也可以使用`@import` at 規則建立級聯層,並將規則放在匯入的樣式表中。下面是一個例子。
@import "demo-layer.css" layer(layout);
巢狀層
層可以巢狀,這意味著可以在其他層中建立層。這對於組織 CSS 和賦予某些層優先順序非常有用。
@layer layer-name1 {
@layer layer-name2 {
} }
語法
正式的 @layer 語法如下所示
@layer <layer-name>? { <stylesheet> } | @layer <layer-name># ;
示例
下面的例子演示了在層外部宣告的樣式優先於在層內宣告的樣式。
<html>
<head>
<style>
h1 {
color: white;
background-color:gray;
}
p {
color: black;
}
@layer components {
.container h1 {
background-color: blue;
color: red;
padding: 10px;
border-radius: 20px;
}
.container p {
color: white;
background-color: lightblue;
font-size: 25px;
}
}
</style>
</head>
<body>
<div class="container">
<h1>HTML example to show CSS at-rules @layer</h1>
<p>This is a sample text.</p>
<button>Click Me</button>
</div>
</body>
</html>
將規則分配給現有層
以下示例演示了將規則分配給現有層。最初建立兩個沒有任何規則的層,之後將 CSS 規則應用於這兩個層。
在給出的示例中,`@layer primary-demo, custom-demo;`聲明瞭兩個名為`primary-demo`和`custom-demo`的 CSS 層。
在`@layer primary-demo`中定義的樣式將預設格式應用於具有`container`類的元素。
隨後的部分`@layer custom-demo`覆蓋了同一類的某些屬性,允許自定義樣式而不影響基礎層,這演示了使用 CSS 層來組織和管理樣式。
<html>
<head>
<style>
@layer primary-demo, custom-demo;
@layer primary-demo {
.container {
background-color: blue;
color: black;
font-family: Arial, sans-serif;
font-size: 20px;
line-height: 1.5;
}
}
@layer custom-demo {
.container {
background-color: orange;
color: white;
padding: 10px;
text-align: center;
}
}
</style>
</head>
<body>
<div class="container">
<h1>Welcome to My Website</h1>
<p>This is a welcome quote with a blue background and white text.</p>
<p><a href="#">Learn More</a></p>
<h2>About Me</h2>
<p>I am a web developer with experience in HTML, CSS, and JavaScript.</p>
<p><a href="#">View My Portfolio</a></p>
</div>
</body>
</html>