實務上常會出現 Header、Navigation、Main、Aside 與 Footer 等區塊,可使用 grid-template-areas
建立不規則 Layout。
Version
CSS 3
grid-template-areas
使用 section
、 header
、nav
、main
、aside
與 footer
建立不規則 layout。
<template lang='pug'>
section
header header
nav navigation
main Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam commodi dolorem eius error eveniet, facilis inventore numquam temporibus voluptates. Commodi deleniti eaque in quasi rerum saepe tempore! Cumque, necessitatibus, numquam!
aside aside
footer footer
</template>
<style lang='sass' scoped>
section
display: grid
height: 97vh
grid-template-columns: 150px auto 150px
grid-template-rows: 100px auto 50px
grid-template-areas: 'header header header' 'nav main aside' 'footer footer footer'
header
grid-area: header
background: burlywood
nav
grid-area: nav
background: gainsboro
main
grid-area: main
background: aquamarine
aside
grid-area: aside
background: yellow
footer
grid-area: footer
background: darkseagreen
</style>
第 2 行
section
header header
nav navigation
main Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam commodi dolorem eius error eveniet, facilis inventore numquam temporibus voluptates. Commodi deleniti eaque in quasi rerum saepe tempore! Cumque, necessitatibus, numquam!
aside aside
footer footer
section
:定義網頁的 sectionheader
:定義網頁的 headernav
:定義網頁的 navigationmain
:定義網頁的 main contentaside
:定義網頁的 sidebar contentfooter
:定義網頁的 footer
18 行
header
grid-area: header
background: burlywood
設定 header
style:
grid-area: header
:設定grid-area
名稱background: burlywood
:設定背景顏色
22 行
nav
grid-area: nav
background: gainsboro
設定 nav
style:
grid-area: nav
:設定grid-area
名稱background: gainsboro
:設定背景顏色
26 行
main
grid-area: main
background: aquamarine
設定 nav
style:
grid-area: main
:設定grid-area
名稱background: aquamarine
:設定背景顏色
30 行
aside
grid-area: aside
background: yellow
設定 aside
style:
grid-area: aside
:設定grid-area
名稱background: yellow
:設定背景顏色
34 行
footer
grid-area: footer
background: darkseagreen
設定 footer
style:
grid-area: footer
:設定grid-area
名稱background: darkseagreen
:設定背景顏色
11 行
section
display: grid
height: 97vh
grid-template-columns: 150px auto 150px
grid-template-rows: 100px auto 50px
grid-template-areas: 'header header header' 'nav main aside' 'footer footer footer'
設定 section
style:
display: grid
:設定子層使用 Gridheight: 97vh
:設定section
高度grid-template-columns: 150px auto 150px
:設定 3 個 column 與寬度grid-template-rows: 100px auto 50px
:設定 3 個 row 與高度
grid-template-areas: 'header header header' 'nav main aside' 'footer footer footer'
設定 grid-template
使用哪個 grid-area
名稱:
header header header
:3 個 column 都使用header
nav main aside
:依序使用nav
、main
與aside
footer footer footer
:3 個 column 都使用footer
Conclusion
- 先將區塊使用
grid-area
命名,再使用grid-template-area
設定使用該grid-area
名稱