그리드 연습
그리드는 콘텐츠를 열과 행으로 모두 구성할 수 있으므로 복잡한 레이아웃에 적합합니다.
플렉스와 마찬가지로 그리드에도 그리드 컨테이너와 컨테이너의 자식인 그리드 항목이 있습니다. 따라서 컨테이너의 전체 공간이 그리드의 영향을 받고 각 항목의 속성과 값에 따라 레이아웃이 변경됩니다.
display: grid in container로 지정할 수 있습니다.
https://studiomeal.com/archives/533의 이미지
그리드 트랙은 그리드의 행과 열이며, 그리드 셀은 그리드의 셀입니다. 그리드 선은 그리드 셀을 나누는 선입니다. 그리드를 사용하려면 먼저 컨테이너에 작성합니다.
.container {
display: grid;
/* display: inline-grid; */
}
그러나 (격자) 항목이 블록 요소인 경우에는 아무 것도 변경되지 않습니다. Inline-grid는 inline-block처럼 작동합니다.
grid-template-rows
, grid-template columns
: 그리드 트랙의 크기를 지정합니다..container {
grid-template-columns: 200px 200px 500px;
/* grid-template-columns: 1fr 1fr 1fr */
/* grid-template-columns: repeat(3, 1fr) */
/* grid-template-columns: 200px 1fr */
/* grid-template-columns: 100px 200px auto */
grid-template-rows: 200px 200px 500px;
/* grid-template-rows: 1fr 1fr 1fr */
/* grid-template-rows: repeat(3, 1fr) */
/* grid-template-rows: 200px 1fr */
/* grid-template-rows: 100px 200px auto */
}
fr = 분수. (비율로 보시면 됩니다)
grid-template-columns: 1fr 1fr 1fr;
인 경우 1:1:1인 세 개의 열을 만듭니다.grid-template-columns: 100px 2fr 1fr;
인 경우 왼쪽의 첫 번째 열은 100px로 설정되고 두 번째 및 세 번째 열은 2:1 비율로 설정됩니다.반복하다
.container {
grid-template-columns: repeat(5, 1fr);
/* The code above is the same as below */
/* grid-template-columns: 1fr 1fr 1fr 1fr 1fr */
}
https://studiomeal.com/archives/533의 이미지
/* These two select the same area */
.item:nth-child(1) {
grid-column-start: 1;
grid-column-end: 3;
grid-row-start: 1;
grid-row-end: 2;
}
.item:nth-child(1) {
grid-column: 1 / 3;
grid-row: 1 / 2;
}
그리드 영역
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>flex-1</title>
<style>
* {
box-sizing: border-box;
}
.container-color {
background-color: cornsilk;
border: solid 3px black;
border-radius: 10px;
margin: 5px;
padding: 5px;
}
.item-color {
background-color: darkcyan;
border: solid 3px black;
border-radius: 10px;
margin: 5px;
padding: 5px;
}
.container {
display: grid;
border: 10px solid black;
gap: 10px;
grid-template-areas:
'header header header'
'section section section'
'footer footer footer';
}
.header {
grid-area: header;
border: 10px solid tomato;
}
.section {
grid-area: section;
border: 10px solid blue;
}
.footer {
grid-area: footer;
border: 10px solid deeppink;
}
</style>
</head>
<body>
<div class="container-color container">
<div class="item-color item header">Lorem.</div>
<div class="item-color item section">Lorem, ipsum.</div>
<div class="item-color item footer">Lorem ipsum dolor sit.</div>
</div>
</body>
</html>
그리드 행, 그리드 열
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>flex-1</title>
<style>
* {
box-sizing: border-box;
}
.container-color {
background-color: cornsilk;
border: solid 3px black;
border-radius: 10px;
/* height: 500px; */
margin: 5px;
padding: 5px;
}
.item-color {
background-color: darkcyan;
border: solid 3px black;
border-radius: 10px;
margin: 5px;
padding: 5px;
}
.container {
display: grid;
}
.header {
grid-row: 1 / 2;
grid-column: 1 / 4;
}
.section {
grid-row: 2 / 3;
grid-column: 1 / 3;
}
.aside {
grid-row: 2 / 3;
grid-column: 3 / 4;
}
.footer {
grid-row: 3 / 4;
grid-column: 1 / 4;
}
</style>
</head>
<body>
<div class="container-color container">
<div class="item-color item header">Lorem.</div>
<div class="item-color item section">Lorem, ipsum.</div>
<div class="item-color item aside">Lorem, ipsum dolor.</div>
<div class="item-color item footer">Lorem ipsum dolor sit.</div>
</div>
</body>
</html>
그리드 연습
code
위 코드의 일부 문제
.container {
grid-template-columns: repeat(5, 1fr);
/* The code above is the same as below */
/* grid-template-columns: 1fr 1fr 1fr 1fr 1fr */
}
/* These two select the same area */
.item:nth-child(1) {
grid-column-start: 1;
grid-column-end: 3;
grid-row-start: 1;
grid-row-end: 2;
}
.item:nth-child(1) {
grid-column: 1 / 3;
grid-row: 1 / 2;
}
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>flex-1</title>
<style>
* {
box-sizing: border-box;
}
.container-color {
background-color: cornsilk;
border: solid 3px black;
border-radius: 10px;
margin: 5px;
padding: 5px;
}
.item-color {
background-color: darkcyan;
border: solid 3px black;
border-radius: 10px;
margin: 5px;
padding: 5px;
}
.container {
display: grid;
border: 10px solid black;
gap: 10px;
grid-template-areas:
'header header header'
'section section section'
'footer footer footer';
}
.header {
grid-area: header;
border: 10px solid tomato;
}
.section {
grid-area: section;
border: 10px solid blue;
}
.footer {
grid-area: footer;
border: 10px solid deeppink;
}
</style>
</head>
<body>
<div class="container-color container">
<div class="item-color item header">Lorem.</div>
<div class="item-color item section">Lorem, ipsum.</div>
<div class="item-color item footer">Lorem ipsum dolor sit.</div>
</div>
</body>
</html>
그리드 행, 그리드 열
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>flex-1</title>
<style>
* {
box-sizing: border-box;
}
.container-color {
background-color: cornsilk;
border: solid 3px black;
border-radius: 10px;
/* height: 500px; */
margin: 5px;
padding: 5px;
}
.item-color {
background-color: darkcyan;
border: solid 3px black;
border-radius: 10px;
margin: 5px;
padding: 5px;
}
.container {
display: grid;
}
.header {
grid-row: 1 / 2;
grid-column: 1 / 4;
}
.section {
grid-row: 2 / 3;
grid-column: 1 / 3;
}
.aside {
grid-row: 2 / 3;
grid-column: 3 / 4;
}
.footer {
grid-row: 3 / 4;
grid-column: 1 / 4;
}
</style>
</head>
<body>
<div class="container-color container">
<div class="item-color item header">Lorem.</div>
<div class="item-color item section">Lorem, ipsum.</div>
<div class="item-color item aside">Lorem, ipsum dolor.</div>
<div class="item-color item footer">Lorem ipsum dolor sit.</div>
</div>
</body>
</html>
그리드 연습
code
위 코드의 일부 문제
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>flex-1</title>
<style>
* {
box-sizing: border-box;
}
.container-color {
background-color: cornsilk;
border: solid 3px black;
border-radius: 10px;
/* height: 500px; */
margin: 5px;
padding: 5px;
}
.item-color {
background-color: darkcyan;
border: solid 3px black;
border-radius: 10px;
margin: 5px;
padding: 5px;
}
.container {
display: grid;
}
.header {
grid-row: 1 / 2;
grid-column: 1 / 4;
}
.section {
grid-row: 2 / 3;
grid-column: 1 / 3;
}
.aside {
grid-row: 2 / 3;
grid-column: 3 / 4;
}
.footer {
grid-row: 3 / 4;
grid-column: 1 / 4;
}
</style>
</head>
<body>
<div class="container-color container">
<div class="item-color item header">Lorem.</div>
<div class="item-color item section">Lorem, ipsum.</div>
<div class="item-color item aside">Lorem, ipsum dolor.</div>
<div class="item-color item footer">Lorem ipsum dolor sit.</div>
</div>
</body>
</html>
code
위 코드의 일부 문제
따라서 transform: translate()를 사용하는 대신 top과 left를 사용하여 요소를 이동합니다.
in Korean
+ 개발자 도구에서도 그리드를 확인할 수 있습니다.
CSS 그리드를 연습하는 게임
CSS Grid garden
Reference
이 문제에 관하여(그리드 연습), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/daaahailey/grid-practice-14ac
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(그리드 연습), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/daaahailey/grid-practice-14ac텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)