![011_그리드 레이어](https://inblog.ai/_next/image?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D011_%25EA%25B7%25B8%25EB%25A6%25AC%25EB%2593%259C%2520%25EB%25A0%2588%25EC%259D%25B4%25EC%2596%25B4%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3Dchodong&w=1920&q=75)
Contents
그리드 레이어
- 2차원의 레이아웃 시스템으로, 웹 페이지 디자인에 유연성을 제공한다.
- 배치를 할 때 주로 사용한다.
- 예제 코드
display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
코드 예제
- 예제 1
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fb1939378-3cd6-4f1f-9032-6c4df0711232%2Fd6446bf5-2198-4ba8-98cf-11b2d7cb255f%2FUntitled.png?table=block&id=f3006e13-a43a-4b54-beb6-1c6e9f4808cf&cache=v2)
출력 코드
<!DOCTYPE html> <html> <head> <title>Document</title> <style> .grid-container { background-color: #2196F3; padding: 10px; display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr; } .grid-item { background-color: rgba(255, 255, 255, 0.8); border: 1px solid rgba(0, 0, 0, 0.8); padding: 20px; font-size: 30px; } </style> </head> <body> <h1>Grid Elements</h1> <div class="grid-container"> <div class="grid-item">1</div> <div class="grid-item">2</div> <div class="grid-item">3</div> <div class="grid-item">4</div> <div class="grid-item">5</div> <div class="grid-item">6</div> <div class="grid-item">7</div> <div class="grid-item">8</div> <div class="grid-item">9</div> </div> </body> </html>
- 예제 2
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fb1939378-3cd6-4f1f-9032-6c4df0711232%2F1ef75cd8-8016-4f74-9f41-3e0ba76c080d%2FUntitled.png?table=block&id=6e924d41-29a8-48e4-aca4-69f791e7a3e7&cache=v2)
출력 코드
<!DOCTYPE html> <html> <head> <title>Document</title> <style> .grid-container { background-color: #2196F3; padding: 10px; display: grid; grid-template-columns: 1fr 1fr 1fr; /* = grid-template-columns: repeat(3, 1fr); */ grid-column-gap: 10px; grid-row-gap: 10px; /*grid-gap: 10px 10px; 로 둘다 처리 가능 (세로 가로 순 동일하게 할시 하나만 기입 가능)*/ } .grid-item { background-color: rgba(255, 255, 255, 0.8); border: 1px solid rgba(0, 0, 0, 0.8); padding: 20px; font-size: 30px; } </style> </head> <body> <h1>Grid Elements</h1> <div class="grid-container"> <div class="grid-item">1</div> <div class="grid-item">2</div> <div class="grid-item">3</div> <div class="grid-item">4</div> <div class="grid-item">5</div> <div class="grid-item">6</div> <div class="grid-item">7</div> <div class="grid-item">8</div> <div class="grid-item">9</div> </div> </body> </html>
- 예제 3
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fb1939378-3cd6-4f1f-9032-6c4df0711232%2F617adea9-d996-432f-a4bf-9d743804a781%2FUntitled.png?table=block&id=f13da252-ae72-48af-bbba-389cfa2dc2ce&cache=v2)
출력 코드
<!DOCTYPE html> <html> <head> <title>Document</title> <style> .grid-container { background-color: #2196F3; padding: 10px; display: grid; grid-template-columns: repeat(4, 1fr); /* grid-column-gap: 10px; grid-row-gap: 10px; */ grid-gap: 10px; } .grid-item { background-color: rgba(255, 255, 255, 0.8); border: 1px solid rgba(0, 0, 0, 0.8); padding: 20px; font-size: 30px; } .g9 { color: red; grid-column-start: 1; /*grid-column: 1/5; 가 두 줄의 코드와 동일*/ grid-column-end: 5; /*숫자 뒤에 span을 붙힐 시 숫자가 칸으로 바뀐다*/ } </style> </head> <body> <h1>Grid Elements</h1> <div class="grid-container"> <div class="grid-item g1">1</div> <div class="grid-item g2">2</div> <div class="grid-item g3">3</div> <div class="grid-item g4">4</div> <div class="grid-item g5">5</div> <div class="grid-item g6">6</div> <div class="grid-item g7">7</div> <div class="grid-item g8">8</div> <div class="grid-item g9">9</div> </div> </body> </html>
- 예제 4
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fb1939378-3cd6-4f1f-9032-6c4df0711232%2F28ace943-6d2d-4106-91ec-24008169e65b%2FUntitled.png?table=block&id=d77b6c4a-1a05-4c64-a752-bf3f5b3937e5&cache=v2)
출력 코드
<!DOCTYPE html> <html> <head> <title>Document</title> <style> .grid-container { background-color: #2196F3; padding: 10px; display: grid; grid-template-columns: repeat(4, 1fr); /* grid-column-gap: 10px; grid-row-gap: 10px; */ grid-gap: 10px; } .grid-item { background-color: rgba(255, 255, 255, 0.8); border: 1px solid rgba(0, 0, 0, 0.8); padding: 20px; font-size: 30px; } .g9 { color: red; grid-column: 1/3; grid-row: 1/3; } </style> </head> <body> <h1>Grid Elements</h1> <div class="grid-container"> <div class="grid-item g1">1</div> <div class="grid-item g2">2</div> <div class="grid-item g3">3</div> <div class="grid-item g4">4</div> <div class="grid-item g5">5</div> <div class="grid-item g6">6</div> <div class="grid-item g7">7</div> <div class="grid-item g8">8</div> <div class="grid-item g9">9</div> </div> </body> </html>
- 예제 5
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fb1939378-3cd6-4f1f-9032-6c4df0711232%2F06e3b277-25f5-46e7-a42b-3c21ae50d576%2FUntitled.png?table=block&id=cbbcf2f4-cd3f-469e-bddf-f52bfcebfeda&cache=v2)
출력 코드
<!DOCTYPE html> <html lang="en"> <head> <title>Document</title> <style> .grid-container { background-color: #2196F3; padding: 10px; display: grid; grid-template-columns: 1fr 2fr 1fr; text-align: center; } .grid-item { background-color: rgba(255, 255, 255, 0.8); border: 1px solid rgba(0, 0, 0, 0.8); padding: 20px; font-size: 30px; } .g1 { grid-column: 1/4; } </style> </head> <body> <div class="grid-container"> <div class="grid-item g1">1</div> <div class="grid-item">2</div> <div class="grid-item">3</div> <div class="grid-item">4</div> <div class="grid-item g1">5</div> </div> </body> </html>
- 예제 6
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fb1939378-3cd6-4f1f-9032-6c4df0711232%2Ff4711713-b69f-470c-9c9a-310e1f372cb3%2FUntitled.png?table=block&id=b3417efa-478c-4b64-96be-8a36761dc4ce&cache=v2)
출력 코드
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .outer-box { width: 500px; height: 500px; background-color: skyblue; display: grid; /*수평 정렬 start, center, end*/ justify-content: center; /*수직 정렬 start, center, end*/ align-items: center; } .inner-box { width: 100px; height: 100px; background-color: red; } </style> </head> <body> <div class="outer-box"> <div class="inner-box">1</div> </div> </body> </html>
- 예제 7
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fb1939378-3cd6-4f1f-9032-6c4df0711232%2F992c44c5-d355-46ef-bbce-4d49794421d2%2FUntitled.png?table=block&id=ca02fa86-43db-4490-91b8-ddf9b7ad4b7a&cache=v2)
출력 코드
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .outer-box { width: 500px; height: 500px; background-color: skyblue; display: grid; grid-template-columns: 1fr 1fr; } .inner-box1 { width: 100px; height: 100px; background-color: red; } .inner-box2 { width: 100px; height: 100px; background-color: blue; } .b1 { display: grid; align-items: end; } .b2 { display: grid; justify-content: end; } </style> </head> <body> <div class="outer-box"> <div class="b1"> <div class="inner-box1">1</div> </div> <div class="b2"> <div class="inner-box2">2</div> </div> </div> </body> </html>
.outer-box>div:nth-child(1)
.outer-box div → 모든 div 를 다찾고
.outer-box>div → 바로 아래의 div 만 찾는다.
justify-content: ;
space-between: 아이템들 사이에 동일한 공간이 생기도록 정렬됩니다.
space-around: 아이템들이 주변의 공간을 동일하게 가지도록 정렬됩니다.
space-evenly: 아이템들이 컨테이너의 공간을 고르게 분배하도록 정렬됩니다.
Share article