P粉4404536892023-08-22 12:47:17
過去数年間、フレックスとグリッドの両方でこれが何度も問題を引き起こしていることがわかったので、次のことをお勧めします:
リーリー この動作が必要な場合は、min-width: auto
または min-height: auto
を使用してください。
実際、ボックスのサイズ変更を追加して、すべてのレイアウトをより合理的にすることもできます:
リーリー何か奇妙な結果があるかどうか知っている人はいますか?上記の方法を数年間使用してきましたが、何も問題はありませんでした。実際、フレックス/グリッドからコンテンツに向かうのではなく、コンテンツから外側に向かってフレックス/グリッドにレイアウトしたいという状況は思いつきません。そのような状況が存在するとしても、それは確かにまれです。したがって、これは悪いデフォルトのように感じられます。しかし、もしかしたら私は何かを見逃しているでしょうか?
P粉7524794672023-08-22 10:57:07
フレックスボックスのデフォルト設定が表示されました。
Flex アイテムは、主軸上のコンテンツのサイズより小さくすることはできません。
デフォルト設定は...
最小幅: 自動
最小高さ: 自動
...行方向と列方向のフレックス項目にそれぞれ適用されます。
フレックス項目を次のように設定できます:
最小幅: 0
最小高さ: 0
オーバーフロー: hidden
(または visible
を除くその他の値)概要自動
値...
min-height: auto
デフォルトは、overflow
が visible
の場合にのみ適用されます。
#overflow でない場合、min-size 属性の値は
0 です。
したがって、
overflow: hidden と
min-height: 0 を置き換えることができます。
###同様に...###
たとえば、行方向コンテナ内のフレックス項目は、デフォルトでは
min-height: auto
min-width は、flex-direction: row と flex-direction: columnmin-width: auto / min-height: auto## を上位レベルでオーバーライドする必要がある場合があります。項目番号。
基本的に、min-width: auto
を持つ上位レベルのフレックス項目は、min-width: 0
を持つ下のネストされた項目の縮小を防ぐことができます。
Flex アイテムは内容より小さく縮小することはできません
子要素を親要素に適応させる
のデフォルト値に戻るか、(2) 謎のアルゴリズムは、特定の状況においてデフォルト値 0 を自動的に適用します。 (これはおそらく、
介入 仕様に記載されているように、と呼ばれるものです。) 非常に多くの人が、レイアウト (特に予想されるスクロールバー) が Chrome では期待どおりに動作するのに、Firefox では動作しない/動作しないと感じています。角。詳細については、こちらを参照してください:
Firefox と Chrome のフレックスシュリンクの違い
IE11
min-width
および min-height
プロパティの auto
値は「新規」です。これは、一部のブラウザでは、値が更新される前にフレックス レイアウトが実装されており、0
が CSS 2.1
に含まれているため、デフォルトで 0 値が表示される可能性があることを意味します。 min-width
と min-height
の値。 IE11 もその 1 つです。 他のブラウザは、flexbox 仕様で定義された新しい auto
値に更新されました。