.parent{
position:relative;
}
.parent .child{
position:absolute;
top:50%;
transform:translateY(-50%);
}
기준점 삼고 싶은 부모 요소에 position:relative를 준다.
그 부모 요소의 수직축 기준으로 정중앙에 위치시키고 싶을 때,
position:absolute;를 주고
top:50%;를 주면
부모의 height기준 정중앙인 지점부터 시작해서
자식 요소가 배치된다.
그러면 내가 원하는 위치보다 child 요소가 아래로 내려가있는 것을 확인할 수 있다.
이 문제를 해결하기 위해서 사용하는 속성이
transform이다.
transform에는 rotate, scale, translate 같은 함수가 와서
원하는 요소를 회전시키거나, 원래 크기보다 확대/축소하거나, 원래 위치를 기준으로 다른 곳에 배치할 수 있다.
transform: translateY()를 사용하면
지금 element가 있는 수직축을 기준으로 위치 변경이 가능하다.
나는 지금 위치 기준으로 절반정도 더 올라가서
부모 element의 정중앙에 가기를 원하기 때문에
transform: translateY(-50%);를 사용한 것.
원리를 이해하기 위해서 구구절절 설명했지만
이 코드는 늘 사용하는 꿀조합 코드이기 때문에
나중에는 그냥 손에서 자동으로 코드가 줄줄 나오게 되어 있다 ;-; ㅎㅎ
'CSS > learned_it_today' 카테고리의 다른 글
모달(modal) viewport 중앙에 위치 시키기 (0) | 2020.10.22 |
---|---|
input, button 못생긴 테두리 없애기 (0) | 2020.10.22 |
부모 요소(element) 속 이미지 크기 맞추기 (1) | 2020.10.22 |
선택된 메뉴에 border-bottom, font-weight을 주고 싶을 때 li에? a에? (0) | 2020.10.21 |
padding을 li에 줄 것인가 a에 줄 것인가 (feat. a는 inline 요소라네) (0) | 2020.10.21 |