보더와 패딩을 설정하면 해당 엘리먼트는 실제로 설정한 크기보다 크게 나타날 수 있다. box-siging
이라는 속성을 이용하면 패딩과 테두리가 포함된 크기로 계산할 수 있다.
box-siging: border-box
새 줄에서 시작해 좌우로 최대한 늘어난다. 자주 볼 수 있는 다른 블록 레벨 엘리먼트로 p
와 form
이 있으며, HTML5에서 새로 추가된 엘리먼트로 header
와 footer
, section
등이 있다.
인라인 엘리먼트는 단락 안에서 <span> 이처럼 </span>
해당 단락의 흐름을 방해하지 않은 채로 텍스트를 감쌀 수 있다. 링크에 사용하는 a
엘리먼트는 가장 흔히 볼 수 있는 인라인 엘리먼트다.
단, margin 을 적용할 수 없다.
줄 안에 녹아들면서 margin 적용 가능
.static {
position: static;
}
기본 상태. 정적(static) 엘리먼트는 위치가 지정된 것이 아니라고 표현하며, static
이 아닌 다른 값으로 지정된 엘리먼트에 대해 위치가 지정됐다고 표현한다.
top, bottom, left, right 사용 불가.
.relative {
position: relative;
top: -20px;
left: 20px;
width: 500px;
}
relative
는 별도의 프로퍼티를 지정하지 않는 이상 static
과 동일하게 동작하지만, top
, right
, bottom
, left
를 지정하면 static 위치와 다르게 위치가 조정된다.
고정(fixed) 엘리먼트는 뷰포트(viewport)에 상대적으로 위치가 지정되는데, 이는 페이지가 스크롤되더라도 늘 같은 곳에 위치한다는 뜻이다. relative
와 마찬가지로 top
이나 right
, bottom
, left
속성 사용 가능.
absolute
는 뷰포트에 상대적으로 위치가 지정되는 게 아니라 가장 가까운 곳에 위치한 부모 엘리먼트에 상대적으로 위치가 지정된다는 점을 제외하면 fixed
와 비슷하게 동작한다.
top
이나 right
, bottom
, left
속성 사용 가능..relative {
position: relative;
width: 600px;
height: 400px;
}
.absolute {
position: absolute;
top: 120px;
right: 0;
width: 300px;
height: 200px;
}