Computer >> 컴퓨터 >  >> 프로그래밍 >> CSS

CSS Display 속성 완벽 정리: block, inline, inline-block, none 활용법

모든 HTML 요소는 CSS Display 속성에 대한 기본값을 가지고 있습니다. 이 속성은 해당 요소가 문서 내에서 어떻게 렌더링(표시)될지를 결정하는 중요한 역할을 합니다.

참고: 기본 display 속성값은 얼마든지 재정의(오버라이드)할 수 있습니다. 다만, 이 경우에도 요소 자체의 유형이 바뀌는 것은 아니며, 문서 내에서의 표시 동작(display behavior)만 달라집니다.

CSS Display 속성에 사용되는 대표적인 값들은 다음과 같습니다.

  • block — 요소가 한 줄 전체를 차지하며, 앞뒤로 줄바꿈이 발생합니다.
  • inline — 요소가 콘텐츠 크기만큼만 공간을 차지하며, 한 줄에 나란히 배치됩니다.
  • inline-block — 인라인처럼 나란히 배치되면서 블록처럼 너비와 높이를 지정할 수 있습니다.
  • none — 요소가 화면에서 완전히 숨겨지고 레이아웃 공간도 차지하지 않습니다.

예제 1: display: block 적용하기

다음 예제는 CSS Display 속성에 block 값을 적용한 사례입니다. <div> 요소의 기본 display 값이 바로 block입니다.

<!DOCTYPE html>
<html>
<head>
<title>CSS Display</title>
<style>
form {
    width:70%;
    margin: 0 auto;
    text-align: center;
}
* {
    padding: 2px;
    margin:5px;
    box-sizing: border-box;
}
input[type="button"] {
    border-radius: 10px;
}
.child{
    display: block; /* <div>의 기본값 */
    height: 40px;
    width: 100%;
    color: white;
    border: 4px solid black;
}
.child:nth-of-type(1){
    background-color: #FF8A00;
}
.child:nth-of-type(2){
    background-color: #F44336;
}
.child:nth-of-type(3){
    background-color: #C303C3;
}
.child:nth-of-type(4){
    background-color: #4CAF50;
}
.child:nth-of-type(5){
    background-color: #03A9F4;
}
.child:nth-of-type(6){
    background-color: #FEDC11;
}
</style>
</head>
<body>
<form>
<fieldset>
<legend>CSS-Display</legend>
<div id="container">
<div class="child"></div><div class="child"></div><div class="child"></div><div class="child"></div><div class="child"></div><div class="child"></div>
</div><br>
</body>
</html>

실행 결과

위 코드를 실행하면 각 <div> 요소가 가로 폭 전체를 차지하며 세로로 쌓이는 것을 확인할 수 있습니다.

CSS Display 속성 완벽 정리: block, inline, inline-block, none 활용법

예제 2: display: inline 적용하기

이번에는 동일한 요소들에 display: inline 값을 적용해 보겠습니다.

<!DOCTYPE html>
<html>
<head>
<title>CSS Display</title>
<style>
form {
    width:70%;
    margin: 0 auto;
    text-align: center;
}
* {
    padding: 2px;
    margin:5px;
    box-sizing: border-box;
}
input[type="button"] {
    border-radius: 10px;
}
.child{
    height: 40px;
    color: white;
    border: 4px solid black;
    display: inline;
}
.child:nth-of-type(1){
    background-color: #FF8A00;
}
.child:nth-of-type(2){
    background-color: #F44336;
}
.child:nth-of-type(3){
    background-color: #C303C3;
}
.child:nth-of-type(4){
    background-color: #4CAF50;
}
.child:nth-of-type(5){
    background-color: #03A9F4;
}
.child:nth-of-type(6){
    background-color: #FEDC11;
}
</style>
</head>
<body>
<form>
<fieldset>
<legend>CSS-Display</legend>
<div id="container">
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
</div><br>
</body>
</html>

실행 결과

위 코드를 실행하면 <div> 요소들이 더 이상 세로로 쌓이지 않고, 한 줄에 나란히 배치되는 것을 확인할 수 있습니다. 이것이 blockinline 값의 가장 큰 차이점입니다.

CSS Display 속성 완벽 정리: block, inline, inline-block, none 활용법