inline-grid
형태로 할 수 있음 <div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
</div>
.container {
border: 5px dashed orange;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
width: 150px;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 30px;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
</div>
.container {
border: 5px dashed orange;
display: grid;
grid-template-columns: 80px 80px 80px;
grid-template-rows: 100px 100px;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 30px;
}
fr
단위도 쓸 수 있음, 이 단위를 토대로 fr
로 준만큼 비율을 주는 것임.container {
border: 5px dashed orange;
height: 400px;
display: grid;
grid-template-columns: 2fr 1fr;
grid-template-rows: 1fr 1fr 1fr 1fr;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 30px;
}
fr
이 반복되면 아래와 같이 함수를 통해서 줄일 수도 있음.container {
border: 5px dashed orange;
height: 400px;
display: grid;
grid-template-columns: 2fr 1fr;
grid-template-rows: repeat(4, 1fr);
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 30px;
}
ㄷ
이나 ㄴ
같은 형태는 안됨).
을 사용하면 그 칸은 띄워둘 수 있음) <div class="container">
<div class="item header">header</div>
<div class="item main">main</div>
<div class="item sidebar">sidebar</div>
<div class="item footer">footer</div>
</div>
.container {
border: 5px dashed orange;
width: 400px;
height: 400px;
display: grid;
grid-template-columns: repeat(5, 1fr);
grid-template-rows: repeat(3, 1fr);
grid-template-areas:
"hd hd hd hd ."
"ma ma ma . sb"
". ft ft ft ft";
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 30px;
}
.header {
grid-area: hd;
}
.main {
grid-area: ma;
}
.sidebar {
grid-area: sb;
}
.footer {
grid-area: ft;
}
gap
을 쓰면 row, column에 각각 gap을 주게됨(앞이 row, 뒤가 column임) <div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
</div>
.container {
border: 5px dashed orange;
width: 400px;
height: 400px;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(4, 1fr);
row-gap: 20px;
column-gap: 50px;
/* gap: 20px 50px; */
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 30px;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">*</div>
<div class="item">*</div>
<div class="item">*</div>
<div class="item">*</div>
<div class="item">*</div>
<div class="item">*</div>
<div class="item">*</div>
<div class="item">*</div>
<div class="item">*</div>
</div>
.container {
border: 5px dashed orange;
width: 400px;
height: 400px;
display: grid;
grid-template-columns: 100px 150px 80px;
grid-template-rows: 1fr 1fr 1fr;
grid-auto-rows: 100px;
grid-auto-columns: 50px;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 30px;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
</div>
.container {
border: 5px dashed orange;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 1fr);
grid-auto-flow: column;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
}
.container {
border: 5px dashed orange;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 1fr);
grid-auto-flow: row dense;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
}
.item:nth-child(2) {
grid-column: span 3;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
</div>
.container {
border: 5px dashed orange;
display: grid;
grid: 1fr 2fr / auto-flow 100px 200px;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
<div class="item">9</div>
</div>
.container {
border: 5px dashed orange;
width: 100%;
height: 500px;
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: repeat(3, 100px);
justify-content: space-around;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
}
.container {
border: 5px dashed orange;
width: 100%;
height: 500px;
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: repeat(3, 100px);
justify-content: space-between;
align-content: space-between;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
<div class="item">9</div>
</div>
.container {
border: 5px dashed orange;
width: 100%;
height: 500px;
display: grid;
grid-template-rows: repeat(3, 1fr);
grid-template-columns: repeat(3, 1fr);
justify-items: center;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
width: 100%;
height: 100%;
}
.item:nth-child(1) {
width: 50px;
height: 50px;
}
.item:nth-child(2) {
justify-self: end;
}
.container {
border: 5px dashed orange;
width: 100%;
height: 500px;
display: grid;
grid-template-rows: repeat(3, 1fr);
grid-template-columns: repeat(3, 1fr);
justify-items: end;
align-items: end;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
width: 100%;
height: 100%;
}
.item:nth-child(1) {
width: 50px;
height: 50px;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
.container {
border: 5px dashed orange;
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: repeat(3, 1fr);
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
}
.item:first-child {
background-color: coral;
grid-row-start: 1;
grid-row-end: -1;
}
.container {
border: 5px dashed orange;
display: grid;
grid-template-rows: repeat(5, 100px);
grid-template-columns: repeat(3, 1fr);
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
}
.item:first-child {
background-color: coral;
/* grid-row-start: 1;
grid-row-end: -1; */
/* grid-row: 1 / -1; */
grid-row: 2 / span 2;
grid-column: 2 / -1;
}
.container {
border: 5px dashed orange;
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: repeat(3, 1fr);
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
}
.item:first-child {
background-color: coral;
grid-area: 4 / 2 / span 2 / -1;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
</div>
.container {
border: 5px dashed orange;
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: repeat(3, 1fr);
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
}
.item:nth-child(5) {
order: -1;
}
.item:nth-child(3) {
order: 1;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
</div>
.container {
border: 5px dashed orange;
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: repeat(3, 1fr);
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
font-size: 24px;
opacity: 0.7;
}
.item:nth-child(1) {
grid-row: 1/ span 2;
grid-column: 1 / span 2;
}
.item:nth-child(2) {
grid-row: 1 / 2;
grid-column: 2 / 4;
z-index: 1;
}
.container {
border: 5px dashed orange;
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: 100px 1fr 1fr;
}
<div class="container">
<div class="item">
Lorem ipsum,
dolor sit amet
consectetur adipisicing
</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
</div>
.container {
border: 5px dashed orange;
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: min-content 1fr 1fr;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
}
.container {
border: 5px dashed orange;
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: max-content 1fr 1fr;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.container {
border: 5px dashed orange;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(100px,1fr));
grid-auto-rows: 50px;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
</div>
.container {
border: 5px dashed orange;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(100px,1fr));
grid-auto-rows: 50px;
}
.item {
background-color: paleturquoise;
border: 3px solid blue;
}