λͺ¨λ μΉμ μν HTML5+CSS3 λ°μ΄λΈ(12)
π λ€μ΄κ°κΈ°μ μμ
μ΄ κΈμ λͺ¨λ μΉμ μν HTML5+CSS3 λ°μ΄λΈ
μ 곡λΆνλ©° κΈ°μ΅ν΄λ λ΄μ©λ€μ κ°λ¨νκ² κΈ°λ‘ν κΈμ
λλ€.
μ±
μ λν μμΈν μ¬νμ λ§ν¬λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ. π
π 1. 그리λ μμ€ν
그리λ μμ€ν μ μλ―Έ κ·Έλλ‘ λ§μΉ λ°λνκ°μ 격μλ₯Ό λ§λ€μ΄ κ·Έ 격μλ₯Ό μ‘°μ¨νμ¬ μ리λ₯Ό λ§λ€κ³ 컨ν μΈ λ₯Ό λ°°μΉνλ λ°©λ²μ λλ€.
μ μ 그리λ, λμ 그리λ, λ°μν 그리λ λͺ¨λ float μμ±μΌλ‘ 그리λ λ μ΄μμμ ꡬμ±ν΄μμ΅λλ€.
κ·Έλ¬λ float μμ±μ λ¬Έμ λ΄λΆμ μ΄λ―Έμ§ λ±μ λμ μΆλ ₯νκΈ° μν΄ λ§λ€μ΄μ§ μμ±μ λλ€.
μ΄μ©λ€λ³΄λ μ΄λ₯Ό λ μ΄μμμ νμ©νκ² λλ€λ³΄λ 20λ μ΄ λλ μΈμλμ μ¬μ©νκ² λμμ΅λλ€. π
그리λ λ μ΄μμ
μμ κ°μ μ΄μ λ‘ CSS3μμ μμ λ μ΄μμμ ꡬμ±ν λ μ¬μ©ν μ μλ display ν€μλλ‘ flex
μ grid
λ₯Ό μΆκ°νμμ΅λλ€.
그리λ λ μ΄μμμ κ΄ν΄ κ°λ¨ν λμλ€μ μλ μ½λμ ν¨κ» 보λλ‘ νκ² μ΅λλ€.
<head>
<style>
.container {
/* π grid λ μ΄μμμ μ μ©ν©λλ€. */
display: grid;
/* π λ μ΄μμμ μ΄(μΈλ‘)μ 200pxμ© 3κ°λ‘ λλλλ€. */
grid-template-columns: 200px 200px 200px;
/* π λ μ΄μμμ ν(κ°λ‘)μ 2:1μ λΉμ¨λ‘ λλλλ€. */
grid-template-rows: 1fr 2fr 1fr;
/* π νκ³Ό μ΄ κ΅¬λΆμ νλ²μ λνλ΄λ ννλ²μ
λλ€.(μμ 2κ° μ€μ νλ²μ νν) */
grid-template: 1fr 2fr 1fr / 200px 200px 200px;
}
/* βππ€© μ¬κΈ°κΉμ§ 보면 μ΄ 3x3μΌλ‘ μ΄ 9κ°μ 격μκ° λ§λ€μ΄μ§ κ²μ μ μ μμ΅λλ€.
νλ°, μλ μ
μ 4κ°λ§ μ‘΄μ¬ν©λλ€. λ€μκ³Ό κ°μ΄ 격μλ₯Ό κ²°ν©μμΌ 4κ°μ μΉΈμΌλ‘ λ§λ€λλ‘ νκ² μ΅λλ€. */
.ceall-a {
grid-row-start: 1;
grid-row-end: 4;
/* grid-row: 1 / 4; μ΄λ κ²λ νν κ°λ₯ */
grid-column-start: 1;
grid-column-end: 3;
/* grid-column: 1 / 3; μ΄λ κ²λ νν κ°λ₯ */
/* π μμ λͺ¨λ μμλ₯Ό λ€μκ³Ό κ°μ΄ νλ²μ ννλ κ°λ₯ν©λλ€.
grid-area: 1 / 1 / 4 / 3;
(grid-row-start/grid-column-start/grid-row-end/grid-column-end)
*/
}
/* π μ΄ 9κ°μ 격μκ° μμ λ, μμκ³Ό λμ κ²½κ³μ μ ν¬ν¨ν΄μ μΈλ‘ κ°λ‘ λͺ¨λ 4κ°μ©μ κ²½κ³μ μ κ°κ² λ©λλ€.
μ΄ λ κ° κ²½κ³μ μ μ²μλΆν° λκΉμ§ 1~4μ λ²νΈλ₯Ό κ°κ²λ©λλ€. μ΄ λ²νΈλ₯Ό ν΅ν΄ μμ κ°μ΄ μ€νμΌμ μ μ©νλ©΄
cell-aλ κ°λ‘λ‘λ 3/4, μΈλ‘λ‘λ μ λΆ λ₯Ό μ°¨μ§νλ λͺ¨μμ κ°κ² λμ΄ 2*3μ μμμ μ°¨μ§ν©λλ€.
κ·Έλ¦¬κ³ λλ¨Έμ§ ν μΉΈμ©μ μ΄ 3κ°μ μΉΈμ b, c, dκ° μ°¨μ§νκ² λ©λλ€. */
</style>
</head>
<body>
<div class="container">
<div class="cell-a">cell-a</div>
<div class="cell-b">cell-b</div>
<div class="cell-c">cell-c</div>
<div class="cell-d">cell-d</div>
</div>
</body>
λ¬Έμμ΄λ‘ λ°°μΉνκΈ°
grid-template-areas μμ±κ³Ό grid-area μμ±μ μ‘°ν©νλ©΄ λ¬Έμμ΄μ ν΅ν΄ κ·Έ λ°°μ΄μ λ§μΉ λ³Ό μ μλ―μ΄ λ μ΄μμμ ꡬμ±ν μ μμ΅λλ€.
<!DOCTYPE html>
<html>
<head>
<title>CSS3 Grid System</title>
<style>
* {
/* κΈ°λ³Έ μ΄κΈ°ν */
margin: 0;
padding: 0;
}
.container {
/* λλΉ κ³ μ and μ€μ μ λ ¬*/
width: 960px;
margin: 0 auto;
/* 그리λ ꡬμ±νκΈ° */
display: grid;
grid-template: 70px 1fr 70px / 200px 1fr;
grid-gap: 5px;
/* π μλ‘ μ νλ ν€λ κ·Έλ¦¬κ³ νΈν°λ κ·Έ λμ΄ ν©μ³μ§κ² λμ΄ μ
νλκ° 2κ°μ 격μλ₯Ό μ°¨μ§νκ² λ©λλ€. */
grid-template-areas:
'header header'
'aside content'
'footer footer';
}
[class*='cell'] {
box-sizing: border-box;
border: 5px solid black;
padding: 10px;
border-radius: 10px;
}
/* π λ€μ λ―μ€μ§λ§, ''λ‘ κ°μΈμ§ μμ΅λλ€. λ§μΉ λ³μμ²λΌ κ·Έλλ‘ μ μ΄μ€λλ€. */
.cell-header {
grid-area: header;
}
.cell-aside {
grid-area: aside;
}
.cell-content {
grid-area: content;
}
.cell-footer {
grid-area: footer;
}
</style>
</head>
<body>
<div class="container">
<div class="cell-header">
<h1>Lorem ipsum dolor sit amet</h1>
</div>
<div class="cell-aide">
<p>Lorem ipsum</p>
<p>dolor sit amet</p>
<p>Lorem ipsum</p>
<p>dolor sit amet</p>
</div>
<div class="cell-content">
<h1>Lorem ipsum dolor sit amet</h1>
<p>Lorem ipsum dolor sit amet</p>
<p>Lorem ipsum dolor sit amet</p>
</div>
<div class="cell-footer">Lorem ipsum dolor sit amet</div>
</div>
</body>
</html>
π μ 리
그리λλ λ§ κ·Έλλ‘ λ§μΉ λ°λν λͺ¨μμΌλ‘ 격μλ₯Ό νμ±νκ³ κ·Έ μμμ 격μλ€μ μμ μμ¬λ‘ κ²°ν©νμ¬ λ μ΄μμμ ꡬμ±νλ λ°©λ²μ
λλ€.
μ΄ν κ° μμ(컨ν
μΈ )λ₯Ό κ·Έ λ μ΄μμμ μ μ©μν€κ² λ©λλ€.(λ§μΉ μ리λ₯Ό 미리 λ€ λ§λ€κ³ κ·Έ μμ 꾸겨λ£λ λλ)
κ°μΈμ μΌλ‘ 그리λμ λν΄μ μ λ§ μ½κ³ μ¬λ―Έμκ² λ°°μΈ μ μλ μ¬μ΄νΈλΌκ³ μκ°ν©λλ€.
> Grid Garden κ°μΆ! π