2017-01-21 5 views
2

次のコードでは、ネストされたフレックスコラムコンテナーを持つフレックスローコンテナーを使用しています。フレックスコラムコンテナでは、ワードラップが機能しないように見えます。ワードエクスプローラーは、エクスプローラーのフレックスアイテムでは機能しません

.profile-header { 
 
    padding-bottom: 20px; 
 
} 
 

 
.profile-header-container { 
 
    display: flex; 
 
    justify-content: center; 
 
    border: 1px solid purple; 
 
} 
 

 
.picture { 
 
    height: 175px; 
 
    width: 175px; 
 
    background-color: orange; 
 
    flex-shrink: 0; 
 
} 
 

 
.info { 
 
    display: flex; 
 
    flex-direction: column; 
 
    justify-content: center; 
 
    align-items: center; 
 
} 
 
.name { 
 
    font-size: 24px; 
 
    border: 1px solid red; 
 
} 
 

 
.button { 
 
    height: 50px; 
 
    width: 150px; 
 
    background-color: blue; 
 
}
<div class="profile-header"> 
 
    <div class="profile-header-container"> 
 
    <div class="picture"> 
 
     
 
    </div> 
 
    <div class="info"> 
 
     <div class="name"> 
 
     reallylongfirstname reallylonglastname 
 
     </div> 
 
     <div class="button"> 
 
     
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

.name要素は、クロムで正常に動作するよう、インターネットエクスプローラで、ワードラップしたいとは思われません。私はフレックスバグ、特にバグ#2をチェックしましたが、max-width: 100%を設定しても動作していないようです。私はこの仕事をすることができる方法はありますか?

jsfiddle

答えて

1

あなたは同じレイアウトを実現するためにCSSのテーブルを使用することができます。 Internet ExplorerでのFlexレイアウトはいくつかのバグがあることが知られている

.profile-header { 
 
    border: 1px solid green; 
 
} 
 
.profile-header-container { 
 
    display: table; 
 
    margin: 0 auto; 
 
    border: 1px solid purple; 
 
} 
 
.picture, 
 
.info { 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
} 
 
.picture { 
 
    display: block; 
 
    height: 175px; 
 
    width: 175px; 
 
    background-color: orange; 
 
} 
 
.info { 
 
    text-align: center; 
 
} 
 
.name { 
 
    font-size: 24px; 
 
    border: 1px solid red; 
 
} 
 
.button { 
 
    display: block; 
 
    height: 50px; 
 
    width: 150px; 
 
    margin: 0 auto; 
 
    background-color: blue; 
 
}
<div class="profile-header"> 
 
    <div class="profile-header-container"> 
 
    <div class="picture"></div> 
 
    <div class="info"> 
 
     <div class="name"> 
 
     reallyrealylongfirstname reallyreallylonglastname 
 
     </div> 
 
     <div class="button"></div> 
 
    </div> 
 
    </div> 
 
</div>

jsFiddle

+0

感謝を。それはうまくいくようです。しかし、いくつかの読書をする際には、私はレイアウトのためにテーブルを使用しないことについて異なる意見を交わしました。明らかに、これが私の問題を解決すれば私はそれを使用しますが、レイアウトに使用されるテーブルの否定的な意見についてコメントしていますか? – user4584963

+0

@ user4584963これらの意見は、HTMLの

をレイアウトに使用しないと言っています。私は信じていません。 flexboxは多くの点でcssテーブルの高度なバージョンであり、まだ開発中であり、バグのようなものです。 – Stickers

1

テキストの折り返しの問題は、ここでは詳述されている:Why IE11 doesn't wrap the text in flexbox?

IEでテキストの折り返しの問題は、多くの場合、右の場所や場所で幅を定義することによって解決されます。

この特定のケースでは、テキスト要素と親の幅を定義することで問題が解決されるようです。

はあなたのコードにこれを追加します。あなたの答えのための

.info { width: 50%; } 

.name { width: 100%; } 

revised fiddle

+0

'.name'要素が必要なものだけを占めるように、私はそれを作ることができる方法を考えることができます。そうすれば、幅を常に50%にする必要はありませんか?時には名前が短くて、 '.info' divが常に中央にくるようにする必要があります。 – user4584963

+0

これは 'display:flex'と' justify-content:center'を '.profile-header'に追加することで実現できます。それで '.info {width:100%}'を設定することができます。 – user4584963

+0

しばらく遊んでいた。私が見ることができるIE11の簡単な修正はありません。たぶんラップの代わりに省略記号を考えますか?テストされ、IE11で動作します。 http://jsfiddle.net/Lhkg2wwe/5/ –

関連する問題