[HTML] Block 요소와 Inline 요소

2020. 8. 20. 16:46HTML, CSS/HTML



▶ Block 요소

  - <div>, <h1>, <p> 등

 

1. 사용 가능한 최대 가로 너비를 사용함.

 

<body> 내에 block 요소인 <div> 생성
<div>에 대한 배경색 지정(좌), 결과 화면(우)

 

  - 가로 너비를 지정하지 않았으나 화면의 왼쪽부터 오른쪽 끝까지 배경색이 모두 출력됨.

 

 

2. 크기를 지정할 수 있음.

 

<body> 내에 block 요소인 <div> 생성(좌), <div>에 대한 배경색과 width, height 지정(우)
결과 화면

 

  - 지정된 px만큼의 너비와 높이를 가지는 영역이 됨.

 

 

3. width: 100%, height: 0px에서 출발

  - 이 값에서 출발해서 요소가 완성되는 것.

  - block 요소가 늘 이 값을 가진다는 건 아니라는 점에 유의.

 

<div>에 height는 지정하지 않고 width값만 지정(좌), 결과 화면(우)

 

  - 이전 예와 비교해 height를 지정하지 않으면 <div> 내용의 높이만큼만 영역을 가지게 됨.

 

 

4. 수직으로 쌓임.
  - 블록요소는 왼쪽 상단을 기준으로 위에서 아래로 수직으로 쌓임.

 

<div>에 배경색과 width 지정
<body> 내에 여러 개의 <div>를 생성(좌), 결과 화면(우)

 

 


5. margin, padding 속성의 상하좌우 여백을 온전하게 사용 가능.

 

<div>에 margin과 padding을 적용하지 않았을 때의 결과 화면(좌), margin 적용 시 결과 화면(중), margin/padding 모두 적용 시 결과 화면(우)

 

  - block 요소는 상하좌우 여백이 모두 적용됨.

 


6. 레이아웃을 위한 용도로 사용.

 

 

 

 

Inline 요소

  - <span>, <img> 등

 

1. 필요한 만큼의 너비만 사용함.

 

<body> 내에 inline 요소인 <span> 생성(좌), <span>에 대한 배경색 지정(우)
결과 화면

 

  - width와 height를 지정하지 않은 채 배경색 지정 시 전체 가로 너비를 사용하지 않고 자신 안에 포함된 내용만큼만 가로 너비를 사용함.

 

 

2. 크기를 지정할 수 없음

 

<span>에 대한 width와 height를 지정(좌), 결과화면

 

  - inline 요소인 <span>에 width와 height을 지정해도 결과는 width와 height를 지정하지 않은 이전 예시와 동일함.

 


3. width: 0, height: 0으로 출발.
  - 자신 안에 content로 들어간 내용만큼의 너비만 사용할 수 있음.

   기본적으로 브라우저에서는 block 요소와 inline 요소 모두 width: auto, height: auto로 지정해 주지만, 서로 다르게 구현된다는 것.
   cf. 블록 요소는 본인이 사용 가능한 최대 가로 너비를 사용.

 


4. 수평으로 쌓임.

 

<div> 내에 여러 개의 <span> 생성
<span>에 대한 배경색 지정(좌), 결과 화면(우)

 

  - inline 요소의 경우 수평으로 쌓임.
  - 또한 별도로 margin을 지정하지 않았는데 중간중간 여백이 들어가 있는 것을 볼 수 있음. inline 요소의 특징.

 

 

일부 <span>은 붙여서 작성하고 일부는 줄바꿈으로 작성(좌), 결과 화면(우)

 

  - 붙여서 작성한 inline 요소는 결과상 여백이 없는데 줄바꿈을 한 경우 여백이 들어감.

    block 요소의 경우 이와 같은 결과로 나타나지 않음.

 


5. margin, padding 중 상하 여백은 사용할 수 없음.

 

margin: 20px; 적용 시 결과 화면(좌), padding: 20px; 적용 시 결과 화면(우)

 

  - margin: 20px; 적용 시 좌우 여백 20px은 적용되었으나 margin-top과 margin-bottom은 적용되지 않음.

  - padding: 20px; 적용 시 좌우 20px이 적용되었으며, padding-bottom이 적용된 것처럼 보임(아래 예시 추가 참조).

 

 

 

  -  하지만 inline 요소 아래에 다른 요소를 넣어 보면 추가된 요소가 겹쳐 나오는 것이 보임.
  ※ margin과 padding은 여백을 지정하는 속성이며 요소와 요소 사이의 거리를 만들어내는 데 사용함.
    - margin이 적용되지 않는 것과 달리 padding은 시각적으로 확인은 가능하지만 실질적인 거리를 만들어내지는 못함.
    - inline 요소의 경우 margin의 상하 여백뿐 아니라 padding의 상하 여백 또한 온전하게 사용할 수 없음.

 


6. 텍스트를 다루는 용도로 사용.

 

 

 


 

▶ css의 display 속성

 

- inline 요소에는 width와 height를 지정해도 적용되지 않음.
  - CSS의 display 속성을 통해 display: block; 지정 시 가로/세로 너비 지정 가능.

  - inline 요소를 사용한 후 강제로 block 요소의 특성으로 변경.

 

<body> 내에 inline 요소인 <sapn> 생성(좌), <span>에 width/height 및 display: block 속성 지정(우)
결과 화면

 


- display: inline;으로 지정 시 가로/세로 크기가 지정될 수 없는 inline 요소로 다시 변경됨.

 

<span>에 width/height 및 display: inline 속성 지정(좌), 결과 화면(우)

 

 

 

- block 요소의 경우에도 마찬가지로 display: inline 지정 시 inline 요소의 특성으로 변경됨.

 

<body> 내에 block 요소인 <div> 생성(좌), <span>에 width/height 및 display: inline 속성 지정(우)
결과 화면

 



- block 요소에 대한 display 속성의 기본값은 display: block;
- inline 요소에 대한 display 속성의 기본값은 display: inline;

 


HTML에는 크게 block 요소와 inline 요소라는 개념이 존재하고 이는 실제로 CSS의 display 속성의 영향을 받음.