IE11でCSS「calc」を使用して3分割すると崩れる不具合の回避方法
web制作当サイト構築時に、CSSのcalcで3分割したところ、親要素が3で割り切れない、かつ複数行にわたる場合に3列目が折り返ししてしまいました。
実際、デモページを作っている際に、なる場合とならない場合があったので、なんとなく微妙ですが、その不具合?の回避方法についてご紹介します。
現象
IE11以外では、きちんと3列に分割されますが、IE11では3列目が下に折り返してしまいます。
※IE11でご覧ください。
HTML
<div class="calc_test"> <p>ボックス1</p> <p>ボックス2</p> <p>ボックス3</p> <p>ボックス4</p> <p>ボックス5</p> <p>ボックス6</p> </div>
CSS
.calc_test { width: 602px; display: flex; flex-wrap: wrap; } .calc_test p { width: calc(100% / 3); }
回避方法
IE11のみに適用されるCSSハックを使用して回避しました。
CSS
.calc_test { width: 602px; display: flex; flex-wrap: wrap; } .calc_test p { width: calc(100% / 3); } *::-ms-backdrop, .calc_test p { width: 33.33%; /* IE11 */ }
修正後
※IE11でご覧ください。
まとめ
他のブラウザやWindows10のEdgeでは崩れることなく表示されたので、IE11のみの現象かと思われます。
IE8がなくなったと思ったらまだまだ色々あるんですね。。。
もし、他に良い方法がありましたら教えてください!
コメント