인라인 요소는 text-align
속성을 이용하여 가운데 정렬이 가능. 블럭 요소는 불가능
블럭 요소를 정렬하기 위해서는 정렬하려는 요소의 넓이를 반드시 설정해줘야 합니다.
p{
width: 100px;
margin: 0 auto; // 왼쪽, 오른쪽 마진을 대등하게 나눔
}
left의 값을 50%로 설정하고 margin-left의 값을 정렬하고자 하는 요소의 (넓이 값/ 2) 만큼 음수 값으로 설정
.centered{
width: 400px;
position: absolute;
left: 50%;
margin-left: -200px;
}
transform 속성을 이용하여 요소의 너비의 절반만큼 이동
.centered{
width: 400px;
position: absolute;
left: 50%;
transform: translateX(-50%);
}
상위 요소(position: relative)의 높이 값이 존재해야 함.
left, top값을 50%롤 설정하면 기준점 기준으로 정렬이 되어있기 때문에 box가 파란색 위치로 이동하도록 transform 속성을 사용하여 이동시켜줍니다.
.box{
width: 100px;
height: 100px;
background-color: #000;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
<div>
포지션이 absolute, fixed 아닐 때 유용하다.
<div class="wrapper">
<div class="box"></div>
</div>
display 속성을 flex로 선언시 flex-direction의 기본 값은 row로 선언됩니다.
주축이 row일 경우 justify-content 속성은 주축을 기준으로 정렬을 하고 align-items 속성은 교차축(column)을 기준으로 정렬을 합니다.
.wrapper{
height: ; //
display: flex;
justify-content: center;
align-items: center;
}
반대로 flex-direction: column이라면 주축은 column이 되고 align-items 속성이 주축에 기준으로 정렬을 하고 justify-content은 교차축(row) 기준으로 정렬을 합니다.