CSS

css -Block vs Inline

Made Project 2020. 3. 29. 19:08

대부분의 HTML element(이하 요소)는 block 요소입니다.

예를 들어, <header>, <footer>, <p>, <li>, <table>, <div>, <h1> 등이 모두 block 요소에 해당하는 태그들입니다.

block 요소의 의미는, 이 요소 바로 옆(좌우측)에 다른 요소를 붙여넣을 수 없다는 뜻입니다.

 

block 요소와 성질이 반대인 inline 요소도 있습니다.

<span>, <a>, <img> 태그 등이 inline 요소입니다.

inline이라는 말 그대로 inline 요소는 요소끼리 서로 한 줄에, 바로 옆에 위치할 수 있다는 뜻입니다.

 

 

첫 번째부터 네 번째까지는 <p>태그 같은 block 요소입니다.

노란색 영역이 해당 요소가 차지하는 영역입니다.

텍스트는 짧은데 그 이상으로 영역을 차지하고 있습니다.

block 요소들은 이런식으로 항상 새 줄에서 시작하며 좌우로 최대한 늘어납니다.

 

마지막 'span의 오른쪽 정렬'이라고 작성된 것은 inline요소인 <span>태그를 사용했습니다.

그림과 같이 딱 텍스트만큼의 영역만 차지하고 있습니다.

아마 저 이후로 inline 성질을 가진 태그가 더 있었다면,

새로운 줄에 시작되는게 아니라 바로 오른쪽에 그려졌을 것입니다.

 


아무리 block 요소의 성질을 가진 

 태그도 
css을 사용하여 inline 스타일로 바꾸면 과 똑같은 디자인이 됩니다.
inline 성질을 갖도록 하는 CSS property는 display와 float이 있습니다.
.inline-p {
  display: inline-block;
}
.float-left {
  float: left;
}
.float-right {
  float: right;
}
해당 property에 위와 같은 값을 부여하면, 
요소 옆에 요소가 위치하는 inline 성질로 변하게 됩니다.

반대로 원래는 inline 성질을 가진 태그를 block으로 바꾸게 할 수도 있습니다.
.block-span {
  display: block;
}
위의 CSS로 은 

 태그와 똑같은 성질을 갖게 되었습니다.


none
display라는 property를 배운김에 none 값도 배워봅시다!
.hide {
  display: none;
}


어차피 안 보일 요소는 왜 작성하는 것일까요?
여러 이유중 하나는 interactive한 웹을 구현할 수 있기 때문입니다.
네이버 검색창에 텍스트를 입력한 순간, 아래에 관련 목록이 뜨는 것을 볼 수 있습니다.