HTML CSS JavaScript

CSS block, inline

whs5758 2025. 7. 18. 11:21

1.1 Display 속성이란?

CSS의 display 속성은 HTML 요소가 화면에 어떻게 표시될지를 결정합니다. 요소의 배치 방식과 동작을 제어하는 핵심 속성입니다.

  • block: 요소가 한 줄을 모두 차지하며, 새로운 줄에서 시작합니다. (예: <div>, <h1>, <p>)
  • inline: 요소가 한 줄 안에서 다른 요소와 나란히 배치됩니다. (예: <span>, <a>)
  • inline-block: inline처럼 한 줄에 나란히 배치되지만, block처럼 width, height, margin, padding을 설정할 수 있습니다.
span {
  display: inline;
  width: 100px; /* 무시됨 */
  height: 50px; /* 무시됨 */
  padding: 10px; /* 좌우는 적용, 상하는 제한적 */
  margin: 10px; /* 좌우만 적용 */
}
  • none: 요소를 화면에서 완전히 숨깁니다. (공간도 차지하지 않음)

div { display: block; }         /* <div>가 한 줄을 차지하며 새로운 줄에서 시작 */
span { display: inline; }       /* <span>이 한 줄에 나란히 배치 */
button { display: inline-block; } /* <button>이 한 줄에 나란히 배치되지만 크기 조정 가능 */
p { display: none; }            /* <p>가 화면에서 숨겨지고 공간도 차지하지 않음 */

 


실습 코드 1 inline 요소에 특징을 잘 이해하자

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>Inline vs Block vs Inline-Block</title>
  <style>

    *, *::before, *::after{
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    .box {
      border: 2px solid #333;
      background-color: #f0f0f0;
      text-align: center;

    }
    .inline {
      display: inline;
      width: 100px; /* 적용 안 됨 */
      height: 100px; /* 적용 안 됨 */
      /* 수직 방향은 적용 안 됨 */
      margin: 20px; 
      /* 수직 방향은 레이아웃에 영향 없음(태그간 겹쳐보일 수 있음) */
      /* padding: 20px;  */
    }
    .block {
      display: block;
      width: 100px;
      height: 100px;
      margin: 20px;
      padding: 20px;
    }
    .inline-block {
      display: inline-block;
      width: 100px;
      height: 100px;
      margin: 20px;
      padding: 20px;
    }
  </style>
</head>
<body>
  <h2>Inline vs Block vs Inline-Block 비교</h2>

  <h3>1. Inline 요소</h3>
  <div class="box inline">Box 1</div>
  <div class="box inline">Box 2</div>
  <div class="box inline">Box 3</div>

  <h3>2. Block 요소</h3>
  <div class="box block">Box 1</div>
  <div class="box block">Box 2</div>
  <div class="box block">Box 3</div>

  <h3>3. Inline-Block 요소</h3>
  <div class="box inline-block">Box 1</div>
  <div class="box inline-block">Box 2</div>
  <div class="box inline-block">Box 3</div>
</body>
</html>

Inline vs Block 차이점 비교

특징  Inline  Block
배치 방식 한 줄에 나란히 배치 한 줄을 모두 차지, 새로운 줄에서 시작
width, height 설정 불가 (콘텐츠 크기에 따라 결정) 가능
margin 수평(left, right)만 적용 가능 모든 방향 적용 가능
padding 수평은 정상 적용, 수직은 레이아웃에 영향 없음 모든 방향 정상 적용
줄 바꿈 없음 (같은 줄에 배치) 있음 (새로운 줄에서 시작)
대표 요소 <span>, <a>, <strong>, <img> <div>, <p>, <h1>, <ul>

 

1.2 Visibility 속성이란?

visibility 속성은 요소의 가시성을 제어합니다. display: none과 비슷해 보이지만 차이점이 있습니다.

  • visible: 요소를 보이게 합니다. (기본값)
  • hidden: 요소를 숨기지만, 공간은 차지합니다.

실습예제 2

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>숨바꼭질 게임</title>
  <style>
    .card {
      border: 2px solid #333;
      padding: 10px;
      margin: 5px;
      text-align: center;
      background-color: #f0f0f0;
      display: inline-block;
      width: 150px;
      height: 200px;
    }
    .hidden {
      visibility: hidden;
    }
    .none {
      display: none;
    }
  </style>
</head>
<body>
  <h2>숨바꼭질 게임</h2>
  <button onclick="toggleVisibility()">고양이 숨기기/보이기 (visibility)</button>
  <button onclick="toggleDisplay()">강아지 숨기기/보이기 (display)</button>

  <div class="card" id="cat">🐱 고양이</div>
  <div class="card" id="dog">🐶 강아지</div>

  <script>
    function toggleVisibility() {
      const cat = document.getElementById('cat');
      cat.classList.toggle('hidden');
    }
    function toggleDisplay() {
      const dog = document.getElementById('dog');
      dog.classList.toggle('none');
    }
  </script>
</body>
</html>

1.3 Display와 Visibility의 차이

  • display: none: 요소를 숨기고 공간도 제거합니다.
  • visibility: hidden: 요소를 숨기지만 공간은 유지합니다.

 

'HTML CSS JavaScript' 카테고리의 다른 글

CSS position 관련 속성(Position, Z-Index, Overflow)  (3) 2025.07.18
CSS font 속성  (2) 2025.07.18
CSS background에 이해  (0) 2025.07.18
CSS 박스 모델에 이해  (1) 2025.07.18
CSS 선택자(속성 선택자)  (0) 2025.07.14