본문 바로가기
개발 관련 지식/CSS

CSS - block vs inline

by 권태일1147 2020. 3. 11.

block level의 태그는 contents가 위치하는 라인 전부를 차지한다.(width: 100%;)

block level의 요소가 사용될 때는 기본적으로 줄바꿈이 된다.

- margin, width, height 속성을 정의하면 모두 적용된다.

 

inline level의 태그는 가지고있는 contents의 크기만큼만 사이즈를 잡는 요소이다.

한 줄에 여러개의 인라인 요소들을 사용할 수 있다.

- margin-top, margin-bottom이 적용되지 않는다. 그 대신에 line-height로 위아래 여백을 준다.

- width와 height 속성이 적용되지 않는다. inline 속성의 width와 height는 태그가 품고 있는 내부 contents의 부피에 맞춰진다.

- inline 속성의 태그가 연속으로 사용될 경우 최소 간격을 위해 좌우로 5px의 margin이 자동 생성된다.

 

block level tag <p>, <h1>~<h6>, <ul>, <ol>, <div>, <blockquote>, <form>, <hr>, <table>, <fieldset>, <address>
inline level tag <a>, <img>, <object>, <br>, <sub>, <sup>, <span>, <input>, <textarea>, <label>, <button>

 

예시.

<html>
<head>
    <style>
      span {
        width: 500px;
        border: 1px solid black;
      }
      h1 {
        border: 1px solid black;
      }
    </style>
</head>
<body>
  <span>Hello World</span>
  안녕하세요. <h1>Hello</h1> 반가워요.
</body>
</html>

inline level의 span에 width를 직접 입력해도 변화가 없다. block level의 h1 태그는 width: 100%를 차지한다.

 

 반대되는 속성을 직접 적용할 경우.

<html>
<head>
    <style>
      span {
        display: block;
        width: 500px;
        border: 1px solid black;
      }
      h1 {
        display: inline;
        border: 1px solid black;
      }
    </style>
</head>
<body>
  <span>Hello World</span>
  안녕하세요. <h1>Hello</h1> 반가워요.
</body>
</html>

span에 block 속성이 적용되어 width가 함께 적용된 모습. 반대로 h1 태그는 내부 contents만큼의 사이즈가 잡힌다.

 

 

inline-block 속성

inline-block이라는 속성은 기본적으로 inline의 속성 처럼 내부 contents만큼의 사이즈를 가지면서, margin, width, height 속성을 정의하면 표현해 준다. inline-block 속성을 갖는 태그는 없기 때문에 따로 정의를 해야한다.

- inline-block의 상하 여백을 margin과 line-height로 설정할 수 있다.

- widht와 height를 적용할 수 있다.

- inline 속성처럼 inline 속성의 태그를 연속적으로 사용할 경우 최소 간격을 위해 좌우로 5px의 margin이 자동으로 생기지만, margin-left, margin-right로 따로 설정이 가능하다.

 

예시.

<html>
<head>
    <style>
      span {
        border: 1px solid black;
      }
      h1 {
        display: inline-block;
        border: 1px solid black;
        width: 200px;
        height: 100px;
        margin: 20px;
      }
    </style>
</head>
<body>
  <span>Hello World</span>
  안녕하세요. <h1>Hello</h1> 반가워요.
</body>
</html>

'개발 관련 지식 > CSS' 카테고리의 다른 글

CSS - flex  (0) 2020.03.12
CSS - position : static, relative, absolute, fixed  (0) 2020.03.12
마진 겹침 현상(margin-collapsing)  (0) 2020.03.12
CSS - box-sizing  (0) 2020.03.11
CSS - 가상 클래스 선택자  (0) 2020.03.11