fr
단위를 사용하여 비율 관리를 할 수 있다. ( %
와는 다름) ❗️그리드 레이아웃을 지정하기 위해 먼저 알아야 할 것
- 디자인적인 목적만을 위해서 어떤 의미도 존재하지 않는 태그를 묶어야하는데 그 태그가
<div>
태그와<span>
태그이다. 이미 앞에서도 다뤘지만 한번 더 정리하자면,
(1) div(Division)
:block-level element. 주로 전체적인 레이아웃을 잡는데 사용된다.
한 개의 가로 공간(block)을 만드는 태그로, 상하 여백 없이 한 줄에 한 공간을 차지하게 된다. 고정적인 공간 사이즈를 가지고 있지 않다.(웹 브라우저 창을 줄이면 공간을 유지한 채로 사이즈만 줄어든다.)
(2) span
: inline-level element. 주로 내용 안의 특정 부분을 강조하거나 제어하기 위해서 사용된다.
자신에게 주어진 공간만을 차지하는 태그로, 연달아 사용하면 가로로 배열된다. inline레벨 요소로써 width와 height 조절이 불가능하다.
(3) p
: block-level element. 주로 내용을 입력하는 곳에 사용된다.
자체적으로 'margin'값을 가지고 있어서 p 태그 사이에 여백이 존재한다. div와 마찬가지로 고정적인 공간 사이즈를 가지고 있지 않다.
- fr
: 유연한 크기를 갖는 단위이다. 그리드 컨테이너 내의 공간 비율을 분수로 나타낸다.ex) 다음과 같이 작성할 수 있다. .seul { display: grid; grid-template-columns: 1fr 1fr; } ▼ HTML, CSS <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> div { border:5px solid gray; } #seul{ border:5px solid pink; display:grid; grid-template-columns: 150px 1fr; } </style> </head> <body> <div id="seul"> <div>NAVIGATION</div> <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Atque laudantium maxime sequi provident aspernatur eaque minus aliquid eveniet quisquam odio? Incidunt eaque architecto fugit, unde consequatur veniam quaerat ipsa quas.</div> </div> </body> </html>
▼ result▶
grid-template-columns
에서id="seul"
의div
내용의 'NAVIGATION'은 '150px'을 쓰고 Article을 나머지 공간(전체'1fr'의 '1fr')을 다 쓰고 싶다의 의미이다.
만약, '2fr 1fr'로 지정하면 화면전체를 '3fr'이라고 봤을때 'NAVIGATION'이 2/3만큼 차지하게 될 것이다.
display
속성을 사용하여 컨테이너를 그리드로 만드는 것으로 시작한다.grid-template-columns
속성과 grid-template-row
속성을 사용한다.▼ HTML, CSS <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style> div { border:5px solid gray; } #seul{ border:5px solid pink; display:grid; grid-template-columns: 150px 40% auto; } </style> </head> <body> <div id="seul"> <div>NAVIGATION</div> <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Atque laudantium maxime sequi provident aspernatur eaque minus aliquid eveniet quisquam odio? Incidunt eaque architecto fugit, unde consequatur veniam quaerat ipsa quas.</div> <div>item</div> <div>item</div> <div>item</div> </div> </body> </html>
▼ result 속성 값의 개수를 3개로 작성했기 때문에 3열이다!
grid-auto-rows
를 사용할 수 있다. (행의 개수가 늘거나 줄어도 일정한 값을 적용받지만, 특정 브라우저에서는 작동이 안 될 수도 있다.)▼ (HTML) CSS <style> div { border:5px solid gray; } #seul{ border:5px solid pink; display:grid; grid-template-columns: 1fr 2fr; grid-template-rows: 120px 1fr 2fr; padding: 5px } </style>
▼ result
ex) 다음과 같이 작성할 수 있다. .seul { display: grid; grid-template-columns: repeat (3, 1fr);} = 1fr 1fr 1fr ▼ HTML, CSS <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> div { border:5px solid gray; } #seul{ border:5px solid pink; display:grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); padding: 5px } </style> </head> <body> <div id="seul"> <div>NAVIGATION</div> <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Atque laudantium maxime sequi provident aspernatur eaque minus aliquid eveniet quisquam odio? Incidunt eaque architecto fugit, unde consequatur veniam quaerat ipsa quas.</div> <div> item </div> <div> item </div> <div> item </div> <div> item </div> <div> item </div> <div> item </div> </div> </body> </html>
column-gap
grid-column-gap
의 단축형이다.row-gap
grid-row-gap
의 단축형이다.grid-gap
grid-gap : 10px 30px
과 같이 연속하여 적을 경우 첫번째 값은 행 간격, 두번째 값은 열 간격 값이된다.oder
속성으로 아이템의 순서 변경이 가능하다. (직접적으로 문서 구조가 바뀌는 것은 아니다.)
❗️필요할때 사용해봐야겠다!
justify-items
은 아이템 가로축 정렬방식을 지정한다.
: justify-items: end;
처럼 사용가능하다. (start, end, center, stretch)
align-items
은 아이템 세로축 정렬방식을 지정한다.
: align-items: start;
처럼 사용가능하다. (start, end, center, stretch)