環境
IE11
問題点
IEでmin-width使用時の挙動がおかしい
コード
html
1<div class="box"> 2 <div class="item sidebar">sidebar</div> 3 <div class="item main">main</div> 4</div>
css
1.box { 2 color: white; 3 display: flex; 4} 5 6.sidebar { 7 flex: 1; 8 -ms-flex: 1 0 0px; 9 flex-basis: 300px; //追記*** 10 min-width: 300px; 11 padding: 10px; 12 background: red; 13} 14 15.main { 16 flex: 3; 17 -ms-flex: 3 0 0px; 18 background: blue; 19 padding: 10px; 20}
試してみたこと
LINK ここれへんを参考に下記コードを追記してみましたが、うまくいっておりません。
width: expression(document.body.clientWidth < 302? "300px" : "auto");
よろしくお願いいたします。
>ここれへんを参考に下記コードを追記
作成日見ましたか?「December 16th 2012 」8年も前の記事です
ブラウザ対応もcssもどんどん変わっていきますので
できるだけ新しい記事を参考にしないと上手くいかない事が多いですよ^^;;
作成日気にしていませんでした汗
https://stackoverflow.com/questions/53602763/flexbox-min-width-failing-in-ie-and-edge
↑(2018)こちら参考にして、flex-basisを追記しましたが、やはりmin-widthは効いていないのでmin-width自体が効くようなコードが必要ですね。。
ちなみにIE11でflexにベンダープレフィックスは必要なくなっています。
flex: 1; = flex: 1 1 auto; を読んでいるはずです
IEは色々バグがあるので min-widthを読まずにflexだけで動いてるのかも?
flex-basis と flex-shrink: 0; 両方かけないとダメです
なので、flex: 1 0 300px; ですね
ついでにboxも flex: 3 3 calc(100% - 300px);
にしてみたらどうでしょう
問題切り分けしてください。
min-widthだけで効くか、その他を1つずつ入れいってどこで効かなくなるか
あなたの回答
tips
プレビュー