Grid 屬於父層設定的 Layout,可直接在父層以 grid-template-columns
定義 Column 的寬度與個數。
Version
CSS 3
auto
產生 2 x 3 排版且水平均分。
<template lang='pug'>
section
div 1
div 2
div 3
div 4
div 5
div 6
</template>
<style lang='sass' scoped>
section
display: grid
grid-template-columns: auto auto auto
</style>
12 行
section
display: grid
grid-template-columns: auto auto auto
設定父層 section
style:
display: grid
:設定子層使用 Gridgrid-template-columns: auto auto auto
:argument 個數決定 column 個數,若要由 browser 自行根據剩餘寬度分配則填入auto
,相當於水平三分
grid-template-columns: auto auto auto
也可使用repeat(3, auto)
或repeat(3, 1fr)
取代
Width
產生 2 x 3 排版但寬度自行決定。
<template lang='pug'>
section
div 1
div 2
div 3
div 4
div 5
div 6
</template>
<style lang='sass' scoped>
section
display: grid
grid-template-columns: 20% 50% auto
</style>
12 行
section
display: grid
grid-template-columns: 20% 50% auto
設定父層 section
style:
display: grid
:設定子層使用 Gridgrid-template-columns: 20% 50% auto
:一樣是三個 column,但前兩個 column 以百分比
自行決定寬度,只有最後一個 column 使用auto
Conclusion
grid-template-columns
最大貢獻在於在父層就可決定子層 item 的 column 個數與 column 寬度,這是 Flexbox 做不到的