본문 바로가기
HTML/CSS문법

CSS display 속성

by flycoding 2023. 8. 18.
반응형

display 속성은 레이아웃을 제어하는 데 가장 중요한 CSS 속성이다.

 

CSS display 속성

display 속성은 요소 표시 여부/방법을 지정한다.

모든 HTML 요소는 요소 유형에 따라 기본 표시 값을 가진다. 대부분의 요소에 대한 기본 표시 값은 block 또는 inline 이다.

 

block-level 요소

block-level 요소는 항상 새 라인에서 시작되며 사용 가능한 전체 너비를 차지한다(가능한 한 왼쪽과 오른쪽으로 늘어남).

The <div> element is a block-level element.

블록 레벨 요소의 예:

  • <div>
  • <h1> - <h6>
  • <p>
  • <form>
  • <header>
  • <footer>
  • <section>

 

inline 요소

인라인 요소는 새 라인에서 시작되지 않고 필요한 만큼의 너비만 차지한다.

이것은 inline<span> 요소가 포함된 단락입니다.

인라인 요소의 예:

  • <span>
  • <a>
  • <img>

 

display: none;

display: none. 요소를 삭제하거나 다시 만들지 않고 숨기거나 표시하기 위해 일반적으로 JavaScript와 함께 사용된다. 이를 달성하는 방법을 알고 싶다면 이 페이지의 마지막 예를 살펴보시오.

<script> 요소는 display: none; 를 기본값으로 사용한다.

 

기본 display값 재정의

앞서 언급했듯이 모든 요소에는 기본 display 값이 있다. 그러나 이를 재정의할 수 있다.

inline 요소를 block 요소로 변경하거나 그 반대로 변경하면 페이지를 특정 방식으로 표시하고 웹 표준을 따르는 데 유용할 수 있다.

일반적인 예는 수평 메뉴에 대한 인라인 <li> 요소를 만드는 것이다:

<!DOCTYPE html>
<html>
<head>
<style>
li {
  display: inline;
}
</style>
</head>
<body>

<p>링크 목록을 수평 메뉴로 표시:</p>

<ul>
  <li><a href="/html/default.asp" target="_blank">HTML</a></li>
  <li><a href="/css/default.asp" target="_blank">CSS</a></li>
  <li><a href="/js/default.asp" target="_blank">JavaScript</a></li>
</ul>

</body>
</html>

li요소에 display: inline 으로 재정의를 함으로써 html, css, javascript가 inline 요소로서 화면에 표시되어 같은 줄 바로 옆에 표시되며 아래 그림과 같다.

CSS display: inline 설정 결과 화면 예시

참고: 요소의 표시 속성을 설정하면 요소가 표시되는 방식만 변경되고 요소의 종류는 변경되지 않는다. 따라서 화면표시가 있는 인라인 요소(block;)에는 다른 블록 요소를 포함할 수 없다.

 

다음 예제에서는 <span> 요소를 블록 요소로 표시한다:

<!DOCTYPE html>
<html>
<head>
<style>
span {
  display: block;
}
</style>
</head>
<body>

<h1>범위 요소를 블록 요소로 표시</h1>

<span>display 속성은</span> <span> "block" 값을 가진</span> <span>각 span 요소 사이에 줄바뀜으로 맨 왼쪽부터 출력이 된다.</span>

</body>
</html>

span 요소에 display속성에 block 값을 설정함으로 새로운 라인에 span요소들이 표시되며 아래 그림과 같다.

CSS diplay: block 설정 결과 화면 예시

 

다음 예제에서는 <a> 요소를 블록 요소로 표시한다:

<!DOCTYPE html>
<html>
<head>
<style>
a {
  display: block;
}
</style>
</head>
<body>

<h1>링크를 블록 요소로 표시</h1>

<a href="/html/default.asp" target="_blank">HTML</a>
<a href="/css/default.asp" target="_blank">CSS</a>
<a href="/js/default.asp" target="_blank">JavaScript</a>

</body>
</html>

a 요소에 display: block으로 설정하여 HTML, CSS, javaScript 텍스트가 새로운 줄에서 표시되며 아래 그림과 같다.

CSS display: block 링크 블록 결과 화면 예시

 

요소 숨기기 : display: none or visibility:hidden?

요소를 숨기려면 display 속성을 none 으로 설정한다. 요소가 숨겨지고 페이지는 요소가 없는 것처럼 표시된다:

<!DOCTYPE html>
<html>
<head>
<style>
h1.hidden {
  display: none;
}
</style>
</head>
<body>

<h1>이것은 볼 수 있는 제목입니다.</h1>
<h1 class="hidden">이것은 숨겨진 제목입니다.</h1>
<p>디스플레이가 있는 h1 요소: 없음, 공간을 차지하지 않음.</p>

</body>
</html>

h1.hidden 클래스에 display값을 none으로 설정하며 h1 중 hiddlen 클래스로 정의한 제목은 표시되지 않으며 결과 화면은 아래 그림과 같다.

CSS h1.hidden display : none 설정 결과 화면 예시

 

visibility:hidden. 요소도 숨긴다.

그러나 요소는 여전히 이전과 동일한 공간을 차지한다. 요소는 숨겨지지만 레이아웃에 영향을 미친다:

<!DOCTYPE html>
<html>
<head>
<style>
h1.hidden {
  visibility: hidden;
}
</style>
</head>
<body>

<h1>이것은 볼 수 있는 제목입니다.</h1>
<h1 class="hidden">이것은 숨겨진 제목입니다.</h1>
<p>숨겨진 제목이 여전히 공간을 차지합니다.</p>

</body>
</html>

h1.hidden 클래스에 visibility 속성에 hidden 값을 설정하며 h1 중 hiddlen 클래스로 정의한 제목은 표시되지 않고 자리를 차지한 결과 화면은 아래 그림과 같다.

CSS visibility : hidden 설정 결과 화면 예시

 

CSS display/visibility 속성

속성 설명
display 요소를 표시할 방법을 지정합니다
visibility 요소를 표시할지 여부를 지정합니다

 

지금까지 CSS display와 visibility 속성의 개념과 차이 그리고 예제를 통해 개념을 실습해보았다.

반드시 손으로 눈으로 머리로 익히며 실습하기를 바랍니다.

모두 화이팅입니다.!!!

 

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

'HTML > CSS문법' 카테고리의 다른 글

CSS position 속성  (0) 2023.08.20
CSS width, max-width 속성  (0) 2023.08.19
CSS table style  (0) 2023.08.17
CSS 적응형 테이블(Responsive Table)  (0) 2023.08.16
CSS table alignment  (0) 2023.08.16

댓글