grid-template-areas
版本:CSS3
grid-template-areas CSS 属性是网格区域 grid areas 在CSS中的特定命名。网格区块(grid areas)和网格项(grid item)沒有关联,但是它们可以和一些网格定位属性(grid-placement properties)关联起来,比如grid-row-start, grid-row-end, grid-column-start和grid-column-end;也可以和一些速记(shorthands)属性关联起来,比如grid-row,grid-column 和 grid-area。
示例
/* Keyword value */ grid-template-areas: none; /*values */ grid-template-areas: "a b"; /* 一行 两列 */ grid-template-areas: "a b b" "a c d"; /* 两行 三列 */ /* Global values */ grid-template-areas: inherit; /* 继承 */ grid-template-areas: initial; /* 默认值 */ grid-template-areas: unset; /* 未设置 */
浏览器支持
![]() | ![]() | ![]() | ![]() | ![]() |
IE不支持grid-template-areas ,其余浏览器都支持grid-template-areas |
语法
grid-template-areas :none| <string>+
取值
- none:网格容器没有定义任何的网格区块(grid areas)。
- <string>:每一个给定的字符串会生成一行,一个字符串中用空格分隔的每一个单元(cell)会生成一列。多个同名的,跨越相邻行或列的单元称为网格区块(grid area)。非矩形的网格区块是无效的。
实例
#page { display: grid; /* 1.设置display为grid */ width: 100%; height: 250px; grid-template-areas: "head head" "nav main" "nav foot"; /* 2.区域划分 当前为 三行 两列 */ grid-template-rows: 50px 1fr 30px; /* 3.各区域 宽高设置 */ grid-template-columns: 150px 1fr; } #page > header { grid-area: head; /* 4. 指定当前元素所在的区域位置, 从grid-template-areas选取值 */ 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; } <section id="page"> <header>Header</header> <nav>Navigation</nav> <main>Main area</main> <footer>Footer</footer> </section>