CSS/기초

[display] display의 종류

developeryeon 2023. 12. 7. 09:34
  • display: block;

- 새로운 라인에서 시작

: display: block; 을 사용하면 해당 요소는 항상 새로운 라인에서 시작한다. 

이는 다른 블록 레벨 요소들과 수직으로 정렬되어 있다는 것을 의미한다.

 

- 전체 가로 폭 차지

: 블록 레벨 요소는 가능한 모든 가로 폭을 차지합니다.

부모 요소의 가로 폭 전체를 차지하게 되며, 너비를 지정하지 않으면 화면 전체를 차지한다.

 

- 수직으로 쌓임

: 블록 레벨 요소는 수직으로 쌓이기 때문에, 다른 블록 레벨 요소와 수직으로 정렬된다.

 

- 레이아웃을 쉽게 구성

: section 나누기, layout 구성 등에서 주로 활용된다.

콘텐츠 영역, 패딩, 테두리, 여백 등으로 구성된다.

ex. `<div>` 요소는 기본적으로 `display: block;`이 적용된 상태이다. 

.block-element {
	display: block;
    width: 200px;
    /* 너비를 지정할 수 있지만, 지정하지 않으면 가로 폭 전체를 차지한다. */
    height: 100px;
    /* 높이를 지정할 수 있지만, 지정하지 않으면 콘텐츠에 맞게 늘어난다. */
    margin-bottom: 20px /* 아래쪽 여백 지정함 */
}
  • display: inline;

: 해당 요소를 inline 요소로 만드는 역할을 한다. 이는 다른 요소와 나란히 나열되어 가로로 쭉 흐르는 특성을 가지게 된다. 

- inline 요소 

: 인라인 요소는 새로운 라인에서 시작하지 않고, 내용에 맞게 가로로 나열된다.

 

- 내용에 맞게 크기가 조절

: 인라인 요소는 내용에 맞게 크기가 조절된다.

지정한 너비와 높이는 무시되며, 콘텐츠의 크기에 따라 동적으로 조절된다.

 

- 수직 정렬이 쉽지 않음

: 수직으로 정렬하기 어렵다. 

수직으로 정렬하려면 `vertical-align` 속성을 사용해야 한다.

 

- 주로 문장 내에서 작은 강조 text or link등을 만들 때 활용된다. 

 

 

  • display: inline-block;

: inline처럼 나란히 나열되면서 동시에 block처럼 너비와 높이를 설정할 수 있는 특성을 가진다.

 

- inline-block 요소

: 새로운 라인에서 시작하지 않고, 내용에 맞게 가로로 나열되면서 동시에 block 레벨 요소의 특성을 가진다.

 

- 너비와 높이 설정 가능

: 다른 인라인 요소들과는 달리, 크기를 직접 조절할 수 있다.

 

- 수직 정렬이 쉬움

 

- 주로 사용되는 곳

1. layout 구성 : button, box 등을 나란히 배치하고 각각의 크기를 조절할 때 유용하다. 

2. link 목록 : navigation bar에서 link를 inline-block으로 스타일링하여 가로로 배치할 때 사용된다.

 

 

 

사진 출처: https://medium.com/@kathanpatel0000/display-property-8bc97b965800

 

 

 

  • display: flex;

: flex-container를 생성하는 CSS 속성 중 하나로, 

요소들을 유연하게 배치하고 정렬할 수 있는 기능을 제공한다. 

 

- layout 구성

: 요소들을 수평이나 수직으로 유연하게 배치할 수 있다. 

flex-container 내에서 자식 요소들을 쉽게 정렬하고 간격을 조절할 수 있다. 

 

- 반응형 디자인에 알맞는 

: 동적인 크기 조절이 가능하고, 화면 크기에 따라 자동으로 조절되므로 반응형 디자인을 쉽게 구현할 수 있다. 

 

- 수평, 수직 정렬:

: 수평 정렬과 수직 정렬이 간단해진다. 

`justify-content`, `align-items`, `align-self` 등의 속성을 사용하여 요소들을 쉽게 배치할 수 있다.

 

- 요소들 간의 비율을 유연하게 조절할 수 있어, 동적인 디자인을 만들 수 있다. 

출처: https://studiomeal.com/archives/197

 

 

(사진이 아주 이해 잘되게끔 되어있는걸 가져왔다.)

 

  • display: grid;

출처 : https://studiomeal.com/archives/533

 

: 그리드 레이아웃은 행(row)과 열(column)을 사용하여 요소들을 배치하는 방법을 제공한다.

 

- 행과 열

: 그리드는 행과 열로 이루어져 있다. 

`grid-template-rows`와 ` grid-template-columns `속성을 사용하여 행과 열의 크기와 배치를 정의할 수 있다.

 

- 자식 요소들은 자동으로 그리드 셀에 배치된다.

특정 셀에 배치하고 싶다면 `grid-row`와 `grid-colum` 속성을 사용할 수 있다.  

 

- 간격 설정

`grid-gap` 속성을 사용하여 행과 열 간의 간격을 설정할 수 있다. 

 

- 반응형 디자인을 쉽게 구현할 수 있다.