멋쟁이사자처럼 프론트엔드 스쿨 7기 학습내용 정리 및 복습
grid-container
자식요소: grid-item
.container { display: grid; width: 500px; height: 500px; grid-template-columns: 2fr 1fr 2fr; /* grid-template-columns: 200px 100px 200px; */ grid-template-rows: 2fr 1fr 2fr; /* grid-template-rows: 200px 100xpx 200px; */ gap: 10px; }
💡 알고 넘어가기!
fr
: fraction(분수)1. repeat()
.container { display: grid; width: 300px; height: 300px; /* grid-template-columns: 1fr 1fr 1fr; */ grid-template-columns: repeat(3, 1fr); grid-template-rows: 2fr 1fr; }
2. minmax()
auto-fill
: 가능한 많은 셀들을 만들어 내려고 하며, 빈 공간이 생김auto-fit
: 그리드 컨테이너 내부에 공간이 남을 경우, 그 공간을 각 셀들이 나눠 갖음(빈 공간X)strech
, center
, start
, end
, space-ground
, space-between
, space-evenly
strech
, center
, start
, end
, space-ground
, space-between
, space-evenly
strech
, center
, start
, end
strech
, center
, start
, end
grid-column-start
: 열의 시작 numbergrid-column-end
: 열의 끝 numbergrid-row-start
: 행의 시작 numbergrid-row-end
: 행의 끝 numbergrid-row-start: 1; grid-row-end: 2; grid-column-start: 1; grid-column-end: 4; /* 위 / 아래 코드는 같은 의미임 */ grid-row: 1/2; grid-column: 1/4; /* 위 / 아래 코드는 같은 의미임 */ grid-area: 1/1/2/4;
grid-template-areas
: 그리드 레이아웃 내의 영역 지정grid-area
: 그리드 항목의 이름 지정.container{ grid-template-areas: "header header header" "section section aside" "footer footer footer" } header{ grid-area:header; }
strech
, center
, start
, end
strech
, center
, start
, end
align-self
, justify-self
를 함께 적는 단축 속성/* 수직: 중앙, 수평 : 끝(오른쪽) */ place-self: center end;
grid-template-rows
grid-template-columns
grid-template-areas
grid-auto-rows
grid-auto-columns
grid-auto-flow
grid: auto-flow / 1fr 1fr 1fr; grid: auto-flow dense / 40px 40px 1fr;
<!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>그리드 레이아웃</title>
<style>
.container {
display: grid;
background-color: black;
width: 500px;
height: 400px;
gap: 10px;
grid-template-rows: 1fr 3fr 1fr; /* 그리드 행의 비율 1:3:1 */
grid-template-columns: 3fr 1fr; /* 그리드 열의 비율 3:1 */
/* align-items: center;
justify-content: center; */
}
header {
background-color: skyblue;
grid-row: 1/2; /* 그리드 행 범위 좌표: 1에서 시작해서 2까지 */
grid-column: 1/3; /* 그리드 열 범위 좌표: 1에서 시작해서 3까지 */
}
section {
background-color: beige;
}
aside {
background-color: paleturquoise;
}
footer {
background-color: salmon;
grid-row: 3/4; /* 그리드 행 범위 좌표: 3에서 시작해서 4까지 */
grid-column: 1/3; /* 그리드 열 범위 좌표: 1에서 시작해서 3까지 */
}
</style>
</head>
<body>
<div class="container">
<header>header</header>
<section>section>article</section>
<aside>aside</aside>
<footer>footer</footer>
</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>grid 실습2</title>
<style>
.container {
display: grid;
width: 500px;
height: 500px;
grid-template-columns: 2fr 1fr 2fr;
/* grid-template-columns: 200px 100px 200px; */
grid-template-rows: 2fr 1fr 2fr;
gap: 10px;
}
div :nth-child(1) {
background-color: rgb(246, 72, 72);
grid-area: 1/1/2/3;
}
div :nth-child(2) {
background-color: royalblue;
grid-area: 1/3/3/4;
}
div :nth-child(3) {
background-color: limegreen;
grid-area: 2/1/3/2;
}
div :nth-child(4) {
background-color: gold;
grid-area: 2/2/3/3;
}
div :nth-child(5) {
background-color: plum;
grid-area: 3/1/4/2;
}
div :nth-child(6) {
background-color: orange;
grid-area: 3/2/4/4;
}
</style>
</head>
<body>
<div class="container">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</body>
</html>
글이 많은 도움이 되었습니다, 감사합니다.