grid圣杯布局,三种方式布局

作者:Jasmine - 2020年09月09日

圣杯布局是最常用的布局,所以被比喻为圣杯。它将页面分成五个部分,除了页眉和页脚,内容区分成左边栏、主栏、右边栏。

效果:

html:

<div class="container">
	<header><h1 contenteditable>Header.com</h1></header>
	<div class="left-sidebar" contenteditable>Left Sidebar</div>
	<main contenteditable></main>
	<div class="right-sidebar" contenteditable>Right Sidebar</div>
	<footer contenteditable>Footer Content — Header.com 2020</footer>
</div>

css:

.container {
	height: 100vh;
}


header {
  background: lightpink;
  padding: 2rem;
}

.left-sidebar {
  background: lightblue;
}

main {
  background: coral;
}

.right-sidebar {
  background: yellow;
}

footer {
  background: wheat;
  padding: 2rem;
  text-align: center;
}

.left-sidebar,
.right-sidebar {
  padding: 1rem;
}


布局看到html可以了解到三行三列布局,头尾一行显示.


第一种实现方式:

用的是网格线分隔

简写

grid-template: <grid-template-rows> / <grid-template-columns>

.container {
	display: grid;
	grid-template: auto 1fr auto / auto 1fr auto;
}
header{
    grid-column: 1 / 4;
}
.left-sidebar{
    grid-column: 1 / 2;
}
main{
    grid-column: 2 / 3;
}
.right-sidebar{
    grid-column: 3 / 4;
}
footer{
    grid-column: 1 / 4;
}


第二种实现方式:

用的是网格块命名法

.container {
	display: grid;
	grid-template: auto 1fr auto / auto 1fr auto;
	grid-template-areas: "header header header"
			"leftSide main rightSide"
			"footer footer footer";
}
header{
    grid-area: header;
}
.left-sidebar{
    grid-area: leftSide;
}
main{
    grid-area: main;
}
.right-sidebar{
    grid-area: rightSide;
}
footer{
    grid-area: footer;
}


第三种实现方式:

用的是网格块合并法,span 3,表格列合并三列.

.container {
	display: grid;
	grid-template: auto 1fr auto / auto 1fr auto;
}
header{
    grid-column: span 3;
}
footer{
    grid-column: span 3;
}


本文作者: Jasmine

本文链接: https://www.jianbaizhan.com/article/688

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!