웹을 만드는 작업중 css처리를 하면서 위와 같은 요소가 있다고 가정을 해보겠다.
우린 저 요소 안에있는 분홍색 사각형이 초록색 사각형의 한가운데 오게끔 css position속성을 이용해 만들고자 한다.
우선 마크업 방식은 아래와 같다.
<div class="big">
<div class="small"></div>
</div>
big이란 클래스명을 가진 요소가 분홍색 사각형의 기준점이 되어줘야 하고
small은 big의 기준점에서 한가운데로 자유롭게 이동해야하기때문에 아래와 같이 적용해준다.
big 이란 요소에는 position: relative;
small 이란 요소에는 position: absolute;
.big {
width: 300px;
height: 300px;
background: green;
position: relative;
}
.small {
width: 50px;
height: 50px;
background: #ff00ff;
position: absolute;
}
실제 비율대로라면 small이란 요소에 top: 50%, left: 50%만 줘도 정가운데로 오겠지라고 생각할 수도 있겠지만 실제로
그렇게 되지 않는다.
.big {
width: 300px;
height: 300px;
background: green;
position: relative;
}
.small {
width: 50px;
height: 50px;
background: #ff00ff;
position: absolute;
top: 50%;
left: 50%;
}
위와 같이 css를 작성하면 기준점인 부모요소가 어떤 크기이던간에 위의 이미지 처럼 한 가운데로 오지않는다.
원하는대로 정 가운데 오게 하기위해선 반드시 같이 써야하는 속성과 값이 있다.
바로 transform: translate(-50%,-50%) 이다.
.big {
width: 300px;
height: 300px;
background: green;
position: relative;
}
.small {
width: 50px;
height: 50px;
background: #ff00ff;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
위와같이 작성하면 아래와 같이 정상적으로 small이란 요소가 position 속성을 이용하여 기준점인 big이란 요소의 정 가운데에 오는 것을 확인 할 수가 있다.
위와 같이 처리하면 기준점이 되는 부모요소가 절대값을 가진 요소가 아닌 비율에 따라 달라지는 값을 가지고있다고 하더라도 정가운데 위치를 정확하게 유지한다.
반응형
'퍼블리셔 Note > CSS' 카테고리의 다른 글
[CSS(animation)] 애니메이션 버튼 퍼지는 효과 구현 (0) | 2022.03.31 |
---|---|
[CSS] transform: translate(-50%, -50%) 사용시 이미지 깨짐,폰트 흐릿해짐 현상 (0) | 2022.03.28 |
[CSS] 가로,세로 말 줄임표(...) 처리 (0) | 2022.01.14 |
[SASS(SCSS)]VS CODE에서 Sass(Scss)환경 세팅하기. (0) | 2021.10.05 |
(CSS3-반응형) 종횡비값을 유지하며 background-image 표현하기 (0) | 2021.09.30 |