--- title: 网格布局 slug: Web/CSS/CSS_Grid_Layout tags: - CSS - CSS Grid Layout - Grid Layout - Grid 布局 - Grids - Layout - css layout - 参考 - 布局 - 总览 translation_of: Web/CSS/CSS_Grid_Layout ---
CSS 网格布局擅长于将一个页面划分为几个主要区域,以及定义这些区域的大小、位置、层次等关系(前提是HTML生成了这些区域)。
像表格一样,网格布局让我们能够按行或列来对齐元素。 然而在布局上,网格比表格更可能做到或更简单。 例如,网格容器的子元素可以自己定位,以便它们像CSS定位的元素一样,真正的有重叠和层次。
以下示例显示了一个三列轨道的网格,其中创建的行最小为100像素,最大为自动。条目使用线性定位放置在网格上。
* {box-sizing: border-box;} .wrapper { max-width: 940px; margin: 0 auto; } .wrapper > div { border: 2px solid rgb(233,171,88); border-radius: 5px; background-color: rgba(233,171,88,.5); padding: 1em; color: #d9480f; }
<div class="wrapper"> <div class="one">One</div> <div class="two">Two</div> <div class="three">Three</div> <div class="four">Four</div> <div class="five">Five</div> <div class="six">Six</div> </div>
.wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; grid-auto-rows: minmax(100px, auto); } .one { grid-column: 1 / 3; grid-row: 1; } .two { grid-column: 2 / 4; grid-row: 1 / 3; } .three { grid-row: 2 / 5; grid-column: 1; } .four { grid-column: 3; grid-row: 3; } .five { grid-column: 2; grid-row: 4; } .six { grid-column: 3; grid-row: 4; }
{{ EmbedLiveSample('example', '500', '440') }}
Specification | Status | Comment |
---|---|---|
{{ SpecName("CSS Grid 2") }} | {{ Spec2("CSS Grid 2") }} | 增加subgrids |
{{ SpecName('CSS3 Grid') }} | {{ Spec2('CSS3 Grid') }} | 初始版本 |