겹치려고 사용
나중에 써놓은 요소가 위에 나온다.
float은 영역이 없으니 margin 0 auto가 먹지 않지만, position은 영역 잘 설정해놓으면 먹음
px단위로 이동
자식한테 absolute 들어있을 때 부모한테 relative를 보통 주지만, 이미 부모에게 absolute가 들어있을 때는 별도로 주지 않아도 된다. (absolute도 자식의 기준점을 잡을 수는 있다.
position 양옆으로 값 주고(left : 100px; right : 100px;) text-align-center 주면 가운데정렬 가능
position : fixed; 를 하면 body가 기준이 된다.
그래서 width : 100%를 하면 부모기준 100%가 되니까 body의 100%가 된다.
position: fixed를 주면 width는 필요한 크기만 잡음. 그래서 width값 줘야함.
그리고 아래에 있는 영역들이 올라와서 겹쳐짐.
position은 하늘에 뜨니까 크기를 못잡는거임.
그래서 한겹쌓아서 땅에 놓거나, 같이 position 주거나, 주위에 있는 것들 margin이나 padding으로 위치 잡으면 됨.
margin으로 주는 것이 좋은 이유는 position으로 위치를 옮기면 wrap가 height값을 잡을 수가 없어서 나중에 web2를 사용할 수가 없다.
margin으로 주면 땅에 붙어있어서 height값을 wrap이 잡을 수 있다.
부모가 padding값을 가지고 있어서 자식이 padding만큼의 공간을 차지하고 싶을 때는 position을 주면 된다.
position: absolute;
left: 0;
top: 100%;
width: 100%;
부모기준 위치에서 부모 바로 밑에 와야하니까 top: 100%를 주고, position쓰면 width값 부모기준으로 잡을 수 있으니 width 100%를 잡으면 된다.
아이콘은 한 사진에 몰아놓고 잘라쓴다.
background-position: x축 y축
right: 10px;right: auto; left: 10px;position으로 center 값을 주려면 -> calc(50% - (내사이즈 / 2))를 주면 된다.
크기를 지정하지 않아도(width, height) 값을 주는 방법
position: absolute;
top: 50px;
left: 50px;
right: 50px;
bottom: 50px;
위 소스는 사이즈를 묶지 않은 경우만 가능하다.
만약 위에 사이즈를 고정해놓는 경우 해당 사이즈의 박스를 위 position만큼 움직인다.
position을 쓰고 static인 경우와 relative는 안써도 되지만 (자기 자리니까)
absolute는 사방값을 별도로 무조건 줘야하나, 실무를 하다보면 안주는게 더 편할 수 도 있다.
사방값을 주지 않는다면 맨 위 맨 왼쪽을 주거나 원래 있어야 할 지점에 있는 경우도 있다.
(편법)
위에 padding으로 위치 잡아주고, 밑에 absolute를 주면 위에 있는 요소의 바로 밑에 붙을 수 있기 때문에 이 경우네는 사방값을 안주는 것이 편하다.
그러나 위 경우에는 아래 padding은 인식하지 않고 바로 밑에 붙기 때문에 주의!