코딩하는라민

margin auto 속성으로 정렬하기 / 그리고 margin-left: auto; 본문

Styling/CSS

margin auto 속성으로 정렬하기 / 그리고 margin-left: auto;

코딩하는라민 2022. 11. 12. 15:54
728x90
반응형

margin auto 속성으로 정렬하기 

 

웹디자인기능사 공부하다가 margin-left: auto 속성이 나왔다.

margin: 0 auto; 만 사용하다가 margin-left: auto 속성을 보고 margin 속성에 대해 궁금해져서 이것저것 만져보면서 가지고 놀아보았다.

 

 

 

1. margin: 0 auto;

기존에 많이 사용하던 margin 0 auto 속성

<div class="box"></div>
.box{
  width: 400px;
  height: 400px;
  border: 1px solid black;
  margin: 0 auto;
}

 

 

요소를 가운데 정렬할 수 있다.

margin: 0 auto; 는 위아래의 마진을 0으로, 좌우 마진을 자동으로 조정해주는 것 

▶ margin: 0 auto; ⇔ margin: 0 auto 0 auto; 

 

 

 


 

2. margin-left: auto;

<div class="box">
  <div class="box_01">박스1</div>
  <div class="box_02">박스2</div>
</div>

박스 안에 두 개의 요소가 있을 때, 

① 첫번째 요소에 margin-left: auto; 

.box{
  width: 400px;
  height: 400px;
  border: 1px solid black;
  margin: 0 auto;
  display: flex;
}
.box_01{
  margin-left: auto;
}

박스 안의 두 요소 모두가 오른쪽으로 정렬.

 

 

 

② 두번째 요소에 margin-left: auto; 

.box{
  width: 400px;
  height: 400px;
  border: 1px solid black;
  margin: 0 auto;
  display: flex;
}
.box_02{
  margin-left: auto;
}

박스 안의 두 요소 중 두번째 요소만 오른쪽으로 정렬.

 

 

 


 

 

3. margin-top: auto;

① 첫번째 요소에 margin-top: auto; 

.box{
  width: 400px;
  height: 400px;
  border: 1px solid black;
  margin: 0 auto;
  display: flex;
}
.box_01{
  margin-top: auto;
}

박스 안의 첫 번째 요소만 마진 탑 값이 조정되어 아래로 정렬.

 

 

 

② 두번째 요소에 margin-top: auto; 

.box{
  width: 400px;
  height: 400px;
  border: 1px solid black;
  margin: 0 auto;
  display: flex;
}
.box_02{
  margin-top: auto;
}

박스 안의 두 번째 요소만 마진 탑 값이 조정되어 아래로 정렬.

 

 

③ 세 번째 요소 추가

margin 으로 정렬할 시 원래 있던 자리는 유지한 채 아래로만 정렬되는 것을 볼 수 있음.

 

 

④ 박스2는 margin-top: auto;  박스1은 margin-left: auto; 를 적용해줄 경우

.box{
  width: 400px;
  height: 400px;
  border: 1px solid black;
  margin: 0 auto;
  display: flex;
}
.box_01{
  margin-left: auto;
}
.box_02{
  margin-top: auto;
}

첫 번째에 있던 요소의 left 마진값이 자동으로 조절되면서 그 옆에 있던 요소들이 같이 오른쪽으로 밀려남.

 

 

⑤ 이 상태에서 박스3 에 margin-right: auto; 를 줬을 때

.box{
  width: 400px;
  height: 400px;
  border: 1px solid black;
  margin: 0 auto;
  display: flex;
}
.box_01{
  margin-left: auto;
}
.box_02{
  margin-top: auto;
}
.box_03{
  margin-right: auto;
}

박스1의 margin-left: auto; 와 박스3의 margin-right: auto; 가 만나서 박스 안의 요소들 전체에 margin: 0 auto; 를 해준것처럼 가운데 정렬이 되었다. 박스를 하나 더 추가하지 않아도 안의 요소들을 가운데 정렬할 수 있었다!

 

 

 

 

 

728x90
반응형