HTML,CSS

14. HTML Block vs Inline

빈코더 2021. 1. 12. 19:49
728x90

1.HTML Block vs Inline

1. Block과 Inline

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

 

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

 

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

 

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


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


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

 

하지만! 아무리 block 요소의 성질을 가진 <p> 태그도


css을 사용하여 inline 스타일로 바꾸면 <span>과 똑같은 디자인이 됩니다.


inline 성질을 갖도록 하는 CSS property는 display와 float이 있습니다.

.test1 {
  display: inline-block;
}
.test2 {
  float: left;
}
.test3 {
  float: right;
}

해당 property에 위와 같은 값을 부여하면,


요소 옆에 요소가 위치하는 inline 성질로 변하게 됩니다.

 

반대로 원래는 inline 성질을 가진 태그를 block으로 바꾸게 할 수도 있습니다.

.test4 {
  display: block;
}

위의 CSS로 <span> <p> 태그와 똑같은 성질을 갖게 되었습니다.

2. None

display라는 property를 배운김에 none 값도 배워봅시다!

.test5 {
  display: none;
}

display에 none 이라는 값을 주면, 해당 요소는 화면에서 보이지 않습니다.

 

어차피 안 보일 요소는 왜 작성하는 것일까요?


여러 이유중 하나는 interactive한 웹을 구현할 수 있기 때문입니다.


네이버 검색창에 텍스트를 입력한 순간, 아래에 관련 목록이 뜨는 것을 볼 수 있습니다.

 

원래는 해당 영역이 display: none; 으로 보이지 않다가,


텍스트를 입력하는 순간,


JavaScript가 검색 목록 요소에 다른 클래스로 교체할 것입니다.


아마 그 새로운 클래스에는 display: block; 이라는 값이 있었을 것입니다.


이렇게 클래스 이름에 따라 요소에 display: none <-> block 가 있었다가 없었다가 하면서


요소를 보이게/안보이게 할 수 있는 것입니다.


정말 많이 쓰이는 기법입니다.

728x90

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

16. HTML List  (0) 2021.01.12
15. HTML 레이아웃  (0) 2021.01.12
13. HTML 이미지 넣기  (0) 2021.01.12
12. CSS selector  (0) 2021.01.12
11. CSS 상속(Inheritance)과 그룹(Grouping)  (0) 2021.01.12