[CSS] display / grid / flex

반응형

display

HTML 요소들을 어떻게 보여줄지 결정하는 속성

하위 속성 : none, block, inline, inline-block, grid, flex 등이 있음


📑 block

기본적으로 가로의 길이는 100%로, 한 줄에 하나의 div만 배치가 되고,

원하는 높이와 너비를 적용할 수 있음

.block { ​​display: block; ​​width: 300px; ​​height: 300px; }

block 적용 화면


📑 inline

기본적으로 한 줄에 여러 개의 div 배치가 되고,

길이와 높이의 값을 설정해도 div 안의 내용에 따라 길이와 높이가 결정됨

.inline { ​​display: inline; ​​width: 300px; ​​height: 300px; ​​margin: 5px; }

inline 적용 화면


📑 inline-block

inline의 특징과 block의 특징 모두 적용된 값으로, 기본적으로 한 줄에 여러 개의 div가 배치가 되고,

div 안의 내용 따라 길이와 높이가 결정되지만 길이와 높이를 설정하면 설정한 값으로 크기가 적용됨

.inline-block { ​​display: inline-block; ​​width: 150px; ​​height: 200px; ​​margin: 5px; }

inline-block 적용 화면


📑 none

화면에서 사라지게 하는 속성으로, 화면에 보여주고 싶지 않을 때 적용할 수 있음

.none { ​​display: none; }

grid

레이아웃을 구성하기 위한 속성으로, 행과 열을 사용하여 배치하고 정렬할 수 있으며,

부모 요소에 grid를 설정하면 자식 요소들은 grid-item으로 개별 항목을 나타냄


📑 grid-template-columns

그리드 컨테이너 안에 들어갈 열의 크기와 간격을 정의하는 속성으로, 아이템의 가로 길이를 설정할 수 있음

일정 비율을 나타내는 fr을 사용해서 1:1:2의 비율로 나타낼 수 있음

.grid1 { ​​display: grid; ​​grid-template-columns: 2fr 1fr 1fr; } .grid2 { ​​display: grid; ​​grid-template-columns: 100px 100px 100px; }

grid-template-columns 적용 화면


📑 grid-template-rows

그리드 컨테이너 안에 행의 크기를 정의하는 속성으로, 아이템의 세로 길이를 설정할 수 있음

.grid-template-rows { ​​display: grid; ​​grid-template-rows: 1fr 2fr 3fr; }

grid-template-rows 적용 화면


📑 grid-template-columns & grid-template-rows

그리드 컨테이너의 열과 행 속성 모두 적용

.grid { ​​display: grid; ​​grid-template-columns: 100px 200px; ​​grid-template-rows: 1fr 2fr 3fr; }

grid-template-columns & grid-template-rows 적용 화면


flex

자식 요소들의 배치를 유연하게 조작할 수 있는 설정으로,

display : flex를 적용하면 기본적으로 'justify-content : flex-start' 값이 적용되며, 요소들이 flex 박스의 왼쪽으로 정렬함


📑 flex-direction

flex는 기본적으로 한 줄로 정렬이 되는데, 줄의 방향을 정하는 속성

row : 왼쪽에서 오른쪽으로 정렬

row-reverse : 오른쪽에서 왼쪽으로 정렬

column : 위에서 아래로 정렬

column-reverse : 아래에서 위로 정렬

.group1 { ​​display: flex; ​​flex-direction: row; } .group2 { ​​display: flex; ​​flex-direction: row-reverse; } .group3 { ​​display: flex; ​​flex-direction: column; } .group4 { ​​display: flex; ​​flex-direction: column-reverse; }

flex-direction 적용 화면


📑 justify-content

요소들을 정렬하는 속성

justify-content는 가로 방향으로, align-content는 세로 방향으로 정렬할 수 있고 세부 속성은 동일함

flex-start(왼쪽)·center(중앙)·flex-end(오른쪽) 정렬을 할 수 있음

.group1 { ​​display: flex; ​​justify-content: flex-start; } .group2 { ​​display: flex; ​​justify-content: center; } .group3 { ​​display: flex; ​​justify-content: flex-end; }

justify-content 적용 화면

 

 

아이템들의 간격을 기준으로 정렬할 수 있음

space-around : 아이템 양 옆의 간격을 동일하게 정렬

space-between : 아이템 사이의 간격을 동일하게 정렬

space-evenly : 아이템의 양 끝과 사이의 간격을 동일하게 정렬

.group1 { ​​display: flex; ​​justify-content: space-around; } .group2 { ​​display: flex; ​​justify-content: space-between; } .group3 { ​​display: flex; ​​justify-content: space-evenly; }

justify-content 적용 화면


📑 align-items

justify-content 속성과 다르게 세로를 기준으로 아이템들을 정렬하는 속성

.group1 { ​​display: flex; ​​justify-content: center; ​​align-items: start; } .group2 { ​​display: flex; ​​justify-content: center; ​​align-items: center; } .group3 { ​​display: flex; ​​justify-content: center; ​​align-items: end; } .group4 { ​​display: flex; ​​justify-content: center; ​​align-items: stretch; }

align-items 적용 화면

반응형

댓글