DEV/CSS

[Cross browsing] IE 브라우저 align-items center 안되는 현상.(IE 수직 중앙 정렬 안됨)

RAMY,LEE 2020. 9. 13. 17:42

 

안녕하세요~ 레미입니다.

이번에도 FLEX layout과 관련된 글을 데려왔습니다.

바로 본론으로 들어갈게요!

 

IE에서 수직 중앙 정렬이 안되는 경우가 있습니다. (하,, 또 IE가,,,)

이런 경우 해결 방안은

 

center 정렬이 될 자식의 부모 태그에 고정 높이가 있어야만 center 정렬이 됩니다.

min-height, max-height가 설정되어 있어도 전부 무시되며, height가 적용 된 경우에만 속성이 적용되어야 합니다.

사용예는 아래와 같아요.

.box-wrap {

   display:-ms-flexbox;

   display:flex;

   justify-content:space-between;

   align-items:center;

   height:300px;

}

.box {

   flex:0 0 calc(50% - 20px);

  -ms-flex-preferred-size: calc(50% - 20px);

}

 

그러나, 어떤 경우엔 부모 태그가 유동적인 높이를 유지해야하는 경우가 있어요.

이런 경우 flex 대신 display:table 사용을 추천합니다. 

단, 이 경우엔 부모 태그에 min-height라도 적용이 되어 있어야 합니다.

사용예는 아래와 같습니다.

.box-wrap {

   display:table;

   min-height:300px;

}

.box {

  display:table-cell;

  vertical-align:middle; 

}

 

자식 태그에 display:table-cell와 vertical-align:middle을 적용하면 수직 중앙 정렬이 됩니다.

하지만, display:table의 경우 자식 요소가 일반 텍스트가 아닐 경우엔 정렬이 잘 안될 수도 있어요.

 

저와 같이 어려움에 겪는 분들에게 많은 도움이 되길 바라며 이만 물러나겠습니다.

 

뿅★