display
프로퍼티는 어떤 요소의 렌더링 박스의 타입을 정해주는 속성이다.
디스플레이 유형은 내부와 외부로 나뉜다.
block
,inline
,inline-block
속성을 가질 수 있다.normal flow
^1를 따라 배치된다.display: flex;
로 설정시 해당 요소의 외부 디스플레이 유형은 block
이지만 내부 디스플레이 유형은 flex
로 설정된다. CSS에는 크게 두 가지 외부 디스플레이 박스 유형이 있다.
요소의 박스 유형에 따라 요소들의 페이지 배열 또는 다른 박스와의 작동 방식이 달라진다.
요소의 박스가 block으로 정의되면 다음과 같은 방식으로 동작한다.
1. 박스의 너비가 라인 방향으로 연장되어서 요소의 상위 콘테이너에서 사용 가능한 공간을 채운다. 즉 요소의 width=100%
로 설정된다.
2. 박스가 생성될때 새로운 라인으로 행갈이를 한다.
3. 블록 유형은 width
와 height
를 가질 수 있다.
4. 패딩, 마진, 테두리 속성의 설정으로 다른 요소들이 박스에서 밀려난다.
h1~h6
)<p>
<div>
<address>, <article>, <aside>, <blockgquote>, <canvas>, <dd> <dl>, <hr>, <header>, <form> <table>, <pre>, <ul>, <p>, <ol>, <video>
)이 기본적으로 블록 박스 유형을 갖는다.요소가 인라인 박스 유형을 갖도록 정의되면 다음과 같은 방식으로 동작한다.
width
, height
속성이 적용되지 않는다.<a>, <i>, <span>, <abbr>, <img>, <strong>, <b>, <input>, <sub>, <br>, <code>, <em>, <small>, <tt>, <map>, <textarea>, <label>, <sup>, <q>, <button>, <cite>
요소가 display: inline-block
을 갖는 경우 인라인 요소와 블록 요소 중간의 방식으로 동작한다.
width
와 height
를 적용시킬 수 있다. (높이, 너비를 적용하지 않을 시 인라인 요소와 마찬가지로 컨텐츠 만큼만 영역이 잡힌다.)