Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 다른컴퓨터에서 git사용
- 프로그래머스 데브코스
- nextjs사용법
- 리스트 렌더링
- react next
- 프로그래머스 K_Digital Training
- KDT 프로그래머스 데브코스 프론트엔드
- 리액트
- vue 이벤트 수신
- 프로그래머스 데브코스 프론트엔드
- 쌓임맥락
- Vue
- SCSS import
- vue 지역 컴포넌트
- git 같은계정 다른 컴퓨터
- vuex map
- netlify redirect
- SCSS forward
- Spacer
- SCSS extend
- 폼 입력 바인딩
- intersection opserver
- postcss
- SCSS use
- vue mixin
- 고양이 사진 검색기
- 이벤트 수식어
- KDT 프로그래머스
- 프로그래머스 프론트엔드 데브코스
- flex
Archives
- Today
- Total
혼자 적어보는 노트
[CSS] 화면 가운데 정렬 / 화면 가운데 팝업 / animation 적용 시 가운데 정렬 유지 본문
화면 전체 기준으로 가운데 정렬을 하는 일이 종종 있다.
보통 fixed를 사용한 가운데 정렬은
.popup{
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
위와 같이 설정을 하여 처리를 했었었다.
기본적인 부분에서는 문제가 되지 않지만
animation과 함께 사용 시 뜻하지 않는 대로 움직일 때가 있다.
찾아보니 { position: fixed; margin: 0 auto; left: 0; right: 0; } 이런식으로 가운데 정렬을 하는 방법도 있다
[문제상황]
<style>
.popup-container {
}
.popup {
position: fixed;
top: 50%;
left: 50%;
background-color: tomato;
transform: translate(-50%, -50%);
animation: ani 0.5s ease-in-out;
}
@keyframes ani {
0% {
transform: scale(0.8);
}
100% {
transform: scale(1);
}
}
</style>
<div class="popup-container">
<div class="popup">
<p>팝업내용</p>
</div>
</div>
scale이 변경될때 위치가 애매하게 적용되고,
점프되어서 원래 위치로 돌아가는 현상이 발생한다.
transform의 translate이 변경된 크기를 자동으로 잡아주지 못하는 것으로 예상된다.
[해결방법] 부모요소에 fixed, flex사용
.popup-container {
position: fixed;
display: flex;
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.popup {
position: relative;
top: 0;
left: 0;
background-color: tomato;
animation: ani 0.5s ease-in-out;
}
부모요소에 fixed와 flex를 사용해서 설정해주면
안정적으로 원하는 결과를 얻을 수 있다.
'CSS' 카테고리의 다른 글
[CSS] 플렉스박스(flex-box)의 기본 개념 / 속성 이해하기 (0) | 2021.12.24 |
---|---|
[CSS] 가변 단위 em, rem의 사용 (0) | 2021.12.20 |
[CSS] object-fit 속성으로 오브젝트 채우기 (0) | 2021.11.24 |
[CSS] vimeo 영상 반응형으로 설정 (0) | 2021.11.02 |
css 그라데이션 쉽게 표현하기 (0) | 2021.10.10 |
Comments