요소의 레이아웃을 설정하는 대표적인 속성인 position에 대해서 알아보자.
position은 요소를 원하는 위치로 이동할 수 있게 한다.
📒 속성값에는 static
, absolute
, fixed
, relative
, sticky
이 있으며 각 속성 별로 offset
을 가지고 위치를 조정할 수 있다.
top
, left
, bottom
, right
속성이 있으며 %나 단위(px,em)를 사용한다.top: 40px;
right: 0px;
🔸규칙
top
과 bottom
을 동시지정
👉 top
값 우선적용
left
과 right
을 동시지정
👉 ltr(영어, 한국어 등)이면 left를 우선 적용 /
rtl(페르시아어, 아랍어, 히브리어 등)이면 right를 우선 적용
👉 각 position별로 특징을 알아보자.
position: static;
👉 offset
값을 지정했는데 적용이 되지 않는다면, position을 지정하지 않았는지 살펴봐야한다.
offset
값에 따라 배치된다.position: relative;
top: 40px; left: 40px;
🔸특징
1. Normal -flow의 흐름에 따른다.
2. 주변 요소는 원래 요소의 자리를 남겨두고 배치된다. 따라서 주변 배치에 영향을 주지 않는다.
3. 부모의 position 속성에 영향을 받지 않는다.
offset
값에 따라 배치된다.position: absolute;
top: 20px; left: 210px;
🔸특징
1. Normal-flow의 흐름에서 벗어난다.
2. 페이지 레이아웃에 공간도 배정하지 않습니다.
3. 해당 요소가 display : 블록으로 바뀌면서, 블록관련 요소를 선언할 수 있게 된다.
position: fixed;
top: 20px; left: 210px;
🔸특징
1. 부모의 위치에 영향을 받지 않는다.
2. 주변 요소에 별다른 영역을 주지 않는다.
👏 페이지에 문의하기, 상단으로 올라가기 버튼등에 활용할 수 있다.
position: sticky;
top: -30px;
scroll 박스는 overflow 속성이 존재하는 부모요소를 뜻합니다. 여기서 부모요소가 overflow를 특별히 명시하지 않았다면 부모요소가 바로 scroll 박스가 됩니다!
만일, scroll 박스 사이에 overflow: hidden 이 적용되있는 요소가 있을 경우에는 sticky 속성이 제대로 동작하지 않으므로 주의해야 합니다.
scroll박스
아직 지원하는 브라우저가 많이 없다고 함.
오늘도 한 개념을 배워서 뿌듯하당.