2017-09-26 1 views
1

私はIE11でフレックスボックス垂直整列の問題があります。コンテナがiE11で高さが固定されている場合、Flexboxアイテムが予想どおりに垂直に整列しない

私は子供のフレックスボックスを持っています。 item div内に画像があります。画像はflexコンテナよりも大きいので、justify-content:centerを使用して画像の中央部分を表示します。これは私がIE11以外のすべてのブラウザで期待しているように機能します。添付のイラストに問題が表示されます。どんな助けもありがとうございます。

<div class="container"> 
    <div class="item"> 
    <img src="image.jpg" /> 
    </div> 
</div> 

.container { 
    display: flex; 
    flex-direction: column; 
    height: 200px; 
    overflow: hidden; 
} 

enter image description here

+0

私の答えを確認してコメントしてください。不明な点や不明な点がある場合は教えてください。そうでなければ、あなたを最も助けてくれた答えを受け入れることができればそれは素晴らしいことでしょう。 – LGSon

答えて

1

それはフレキシボックスに来るときIE11はバグがあり、この場合には、それは他のブラウザが何をするかしません。

フレックス列方向の場合は、transform: translate()を使用して動作させます。

.container { 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: center; 
 
    height: 200px; 
 
    overflow: hidden; 
 
    border: 1px dashed gray; 
 
} 
 

 
/* IE11 only */ 
 
_:-ms-fullscreen, :root .IE11Fix { 
 
    position: relative; 
 
    top: 50%; 
 
    transform: translateY(-50%); 
 
}
<div class="container"> 
 
    <div class="item IE11Fix"> 
 
    <img src="http://placehold.it/100x300/f00" /> 
 
    </div> 
 
</div>

0

は、私はあなたが誤ってjustify-content: centerflex-direction: columnを使用していると思います。フレックスX軸合わせ

align-itemsによって制御され、あなたがflex-direction: columnセットあなたのコンテナを削除場合Y軸調整justify-content

によって制御され、 align-items: centerjustify-content: centerである場合、両方とも同じ方法で期待通りの結果が得られます。

https://jsfiddle.net/s3Lmqndu/1/

関連する問題