2017-06-09 6 views
2

私はブートストラップを使用しており、IEのセンタリングボックスに問題があります。 Chromeは期待どおりに動作します。ここでflexboxモデルを使用してdivを水平にセンターする方法

は私のマークアップです:

<div class="modal modal-flex" tabindex="-1"> 
    <div class="modal-dialog" role="document"> 
    <div class="modal-content"> 
     IE, why I have so much problems with you? 
    </div> 
    </div> 
</div> 

modal-flexクラスは、(私は例を単純化するために、ベンダー固有のスタイルを削除した)単純です:IEで

.modal-flex { 
    display: flex; 
    justify-content: center; 
    align-items: center; 
} 

私のボックスがで、右に移動されますクロムは成功裏に集中しました。

IE: enter image description here

クロームenter image description here

は、ここに私のバイオリンhttps://jsfiddle.net/vadimb/mj6ygckq/3/

答えて

0

IEの中央を揃えるためにflex-flow:column nowrap;を追加してくださいです。

+0

はい、それは動作します。ありがとう。正直言って、私は 'justify-content:center;'スタイルを使わないようにもう一つの解決策を見つけました。したがって、次の解決策も機能します: 'display:flex; align-items:center; '。しかし、とにかく私はあなたの答えを適用します。ありがとう。 – VadimB

0

.modal-flex { 
 
    display: -webkit-flex; 
 
    display: -moz-flex; 
 
    display: -ms-flexbox; 
 
    display: -o-flex; 
 
    display: flex; 
 
    flex-flow:column nowrap; /*Add this */ 
 
    justify-content: center; 
 
    -ms-justify-content: center; 
 
    -ms-flex-pack: center; 
 
    align-items: center; 
 
}
<div class="modal modal-flex" tabindex="-1" *ngIf="showAdding"> 
 
    <div class="modal-dialog" role="document"> 
 
<div class="modal-content"> 
 
    IE, why I have so much problems with you? 
 
</div> 
 
<!-- /.modal-content --> 
 
    </div> 
 
    <!-- /.modal-dialog --> 
 
</div> 
 
<!-- /.modal -->

は、私はまた、簡単な解決策を見つけた - justify-content: center;スタイルルールを除外する。 1は フレームワークを使用するときは、この場合には、追加するとき、彼らは時々、常に正常に動作しないような方法で特性を組み合わせる https://jsfiddle.net/mj6ygckq/8/

+0

'justify-content:center;'を削除するだけで、小さな画面にダイアログの中央が表示されません。 – LGSon

+0

いいえ、中央に表示されます。あなたのフィドルからこのスタイル 'flex-flow:column nowrap;'を削除してください(回答のみからCSSを使用してください)。 – VadimB

+0

あなたは 'flex-flow:column nowrap;'を使っているので、デモはうまくいくので、IEでは使わずにサイズを変更してみてください。 – LGSon

1

:そして、位置決めフィドル更新されます。ここ

同様
.modal-flex { 
    display: flex; 
    align-items: center; 
} 

作業開始しました新しい標準、特にFlexboxを使用すると、予測できない結果を招く可能性があります。

この場合、メディアクエリは、modal-dialogに自動マージンを設定します。

は、Flex行方向を使用したいと仮定すると、水平および垂直方向の両方のダイアログを合わせ、このCSSルールを追加

@media (min-width: 768px) { 
    .modal-dialog { 
    margin: 0; 
    } 
} 

Updated fiddle

関連する問題