grid-template-areas

Baseline 已廣泛支援

此功能已非常成熟,可在多種裝置和瀏覽器版本上使用。自 2017 年 10 月以來,它已在各大瀏覽器中可用。

grid-template-areas CSS 屬性用於指定命名的 網格區域,從而建立網格中的單元格併為其分配名稱。

試一試

grid-template-areas:
  "a a a"
  "b c c"
  "b c c";
grid-template-areas:
  "b b a"
  "b b c"
  "b b c";
grid-template-areas:
  "a a ."
  "a a ."
  ". b c";
<section class="default-example" id="default-example">
  <div class="example-container">
    <div class="transition-all" id="example-element">
      <div>One (a)</div>
      <div>Two (b)</div>
      <div>Three (c)</div>
    </div>
  </div>
</section>
#example-element {
  border: 1px solid #c5c5c5;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: repeat(3, minmax(40px, auto));
  grid-gap: 10px;
  width: 200px;
}

#example-element :nth-child(1) {
  background-color: rgb(0 0 255 / 0.2);
  border: 3px solid blue;
  grid-area: a;
}

#example-element :nth-child(2) {
  background-color: rgb(255 0 200 / 0.2);
  border: 3px solid rebeccapurple;
  grid-area: b;
}

#example-element :nth-child(3) {
  background-color: rgb(94 255 0 / 0.2);
  border: 3px solid green;
  grid-area: c;
}

這些區域不與任何特定的網格專案關聯,但可以透過網格佈局屬性 grid-row-startgrid-row-endgrid-column-startgrid-column-end 以及它們的簡寫形式 grid-rowgrid-columngrid-area 進行引用。

語法

css
/* Keyword value */
grid-template-areas: none;

/* <string> values */
grid-template-areas: "a b";
grid-template-areas:
  "a b ."
  "a c d";

/* Global values */
grid-template-areas: inherit;
grid-template-areas: initial;
grid-template-areas: revert;
grid-template-areas: revert-layer;
grid-template-areas: unset;

none

網格容器未定義任何命名的網格區域。

<string>

每列出的一個獨立字串會建立一個行,字串中的每個單元格會建立一個列。同一行內及不同行之間具有相同名稱的多個單元格標記會建立一個跨越相應網格單元格的單個命名網格區域。除非這些單元格形成一個矩形,否則宣告無效。

網格中所有剩餘的未命名區域可以使用空單元格標記來引用。空單元格標記是一個或多個 . (U+002E 句號) 字元的序列,例如 ......... 等。空單元格標記可用於在網格中建立空白空間。

正式定義

初始值none
應用於網格容器
繼承性
計算值同指定值
動畫型別離散

正式語法

grid-template-areas = 
none |
<string>+

示例

指定命名網格區域

HTML

html
<div id="page">
  <header>Header</header>
  <nav>Navigation</nav>
  <main>Main area</main>
  <footer>Footer</footer>
</div>

CSS

css
#page {
  display: grid;
  width: 100%;
  height: 250px;
  grid-template-areas:
    "head head"
    "nav  main"
    ".  foot";
  grid-template-rows: 50px 1fr 30px;
  grid-template-columns: 150px 1fr;
}

#page > header {
  grid-area: head;
  background-color: #8ca0ff;
}

#page > nav {
  grid-area: nav;
  background-color: #ffa08c;
}

#page > main {
  grid-area: main;
  background-color: #ffff64;
}

#page > footer {
  grid-area: foot;
  background-color: #8cffa0;
}

在上述程式碼中,一個空標記 (.) 被用於在網格容器中建立一個未命名區域,我們用它在網格的左下角建立了一個空白空間。

結果

規範

規範
CSS 網格佈局模組 Level 2
# grid-template-areas-屬性

瀏覽器相容性

另見