요소 중앙 정렬하기
분맹히 공부했는데 써먹을 때마다 검색을 해야한다?
이건 한번 정리를 싹 해놔야된다는 뜻!
body{
margin: 0;
}
.content{
width: 400px;
background-color: gray;
}
화면에 이런 요소가 있다고 치자.
이 요소를 세로 + 가로 중앙 정렬을 하고싶다.
1. position 속성 사용 [inline-block]
부모 body를 기준으로 맞출 것이므로 position을 absolute로 맞춰준다.
absolute는 자신의 위치를 부모 객체를 대상으로 맞춘다.
( 다른 요소들에게 영향받지 않음! )
.content{
width: 400px;
position: absolute;
top: 50%;
left: 50%;
background-color: gray;
}
내가 원하는 위치도 아닐뿐더러, 화면의 정가운데에 위치하지도 않는다.
top: 50%
는 위에서부터 딱 중간지점, left: 50%
는 왼쪽 지점으로 중간지점이므로
정확한 정가운데 위치는 .content 요소의 시작점이 된다.
따라서 사각형의 가로 길이의 반만큼 왼쪽으로 이동하고,
세로 길이의 반만큼 위로 이동해주면 화면의 가운데로 옮겨진다.
2. margin: 0px auto; 사용 [조건 : block, width]
(가로 정렬)
정말 간단해서 자주 쓰이지만 주의해야 할 점이 있다.
정렬하고자 하는 요소가 display:block
속성을 가지고,
width
크기가 꼭 지정이 되어야 적용된다.
1.
margin-left: auto;
margin-right: auto;
2.
margin: 0px auto;
3. (안됨!)
margin-top:auto;
margin-bottom: auto;
// margin-top, margin-bottom가 auto일 경우 0으로 취급된다!
- 만약 top, bottom을 auto로 하고싶은 경우에는 부모 컨테이너에
display: flex;
속성과가로, 세로
크기를 지정해주면 된다.
- flex property 사용
margin을 사용하는 2번 방법은 간단하지만 권장되지 않는다.
요소들간의 상호작용을 할 경우 전체 높이 값을 알 수가 없기 때문이다.
flex
,justify
,align
을 이용해줄 것이다.
flex
는 자신이 가진 내용물의 가로 길이만큼만 공간을 차지하게 된다.
body{
margin: 0;
display:flex;
height: 100vh;
justify-content: center; //가로 정렬
align-items: center; //세로 정렬
}
.content_wrapper{
display:flex;
width: 400px;
height: 400px;
background-color: gray;
}
.content{
display:grid;
width:100%;
justify-content: center;
align-items: center;
}
원하는대로 정가운데에 요소가 위치한 모습이다.
content 내부도 정가운데에 위치하도록 코드를 작성해주었다.
1분 코딩 페이지는 정리가 정~~~말 잘되어있습니다. 👍🏻
궁금하신 분들은 아래의 출처 링크 들어가보세욧 🌈
[출처]
Author And Source
이 문제에 관하여(요소 중앙 정렬하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@uoayop/CSS-요소-중앙-정렬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)