Chromeのネストされたフレックスボックスレイアウトで高さのパーセンテージが機能しない

モネフ

FirefoxとIEで完全に機能する次のレイアウトがあります。 Firefox

残念ながら、Chromeではかなり壊れています。つまり、親の高さが100%であっても、濃い青色のコンテナは折りたたまれています。 クロム

私はこのアプローチを試しましたが、運がありませんでした。他のブラウザで壊さずにChromeでこれを修正する方法はありますか?

html,
body {
  height: 97%;
  margin: 0;
  padding: 0;
}

div {
  border: 10px dotted teal;
}

.container {
  display: flex;
  border-color: tomato;
  height: 100%;
}

.row {
  flex-flow: row;
}

.column {
  flex-flow: column;
}

.item1 {
  flex: 1;
}

.item2 {
  flex: 2;
}

.item3 {
  flex: 3;
}

.c1 {
  border-color: gold;
}

.c2 {
  border-color: darkblue;
}
<div class="container">
  <div class="item3">
    <div class="container column c2">
      <div class="item1 c1"></div>
      <div class="item3"></div>
    </div>
  </div>
  <div class="item1 c1"></div>
  <div class="item2"></div>
</div>

マイケルベンジャミン

質問は言う:

FirefoxとIEで完全に機能する次のレイアウトがあります。残念ながら、Chromeでは壊れています。つまり、親の高さが100%であっても、紺色のコンテナは折りたたまれています。

Actually, an argument could be made that the opposite is true: Chrome has it right, while Firefox and IE are "broken".

First, here's the solution:

.item3 { height: 100%; }

Now let's look at your document structure and the heights applied:

<html> <!-- height: 97% -->
<body> <!-- height: 97% -->
<div class="container"> <!-- height: 100%; -->
    <div class="item3"> <!-- height: ?? -->
        <div class="container column c2"> <!-- height: 100% ; this is the collapsed box -->
                       ...
                       ...
                       ...

As per the CSS specification, when using percentages to set the height of an element (like you are doing with .container), the parent element must also have an explicit height. In reference to your collapsed div, its parent (.item3) does not have a defined height.

From the spec:

<percentage>
The percentage is calculated with respect to the height of the generated box's containing block. If the height of the containing block is not specified explicitly (i.e., it depends on content height), and this element is not absolutely positioned, the value computes to 'auto'.

auto
The height depends on the values of other properties.

In terms of the height property, it would appear from this example that Chrome defines "containing block" as "parent", while Firefox and IE define "containing block" as "ancestor", or they respect flex heights as a reference for percentage heights.

したがって、div紺色の境界線(.container column c2)のあるにはコンテンツがなく、その親には高さが指定されていないため、Chromeでは高さがなく、ボックスが折りたたまれます。

ただし、.item3折りたたまれたボックスの親であるの高さを指定することにより、高さはすべてのブラウザーで機能します。

デモ


更新

詳細:

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ネストされたフレックスボックスでテキストオーバーフローの省略記号が機能しない

分類Dev

ネストされた角度のあるマテリアルレイアウトでフレックスが期待どおりに機能しない

分類Dev

ネストされたフレックスボックスがChromeで機能しないのはなぜですか?

分類Dev

ネストされたコンテナのないデスクトップおよびモバイルフレックスボックスレイアウト

分類Dev

別のクラスからタッチされたときのスウィフトボタンアクションセレクター:認識されないセレクターがインスタンスに送信されました

分類Dev

フレックスボックスの高さのパーセンテージ

分類Dev

レイアウトが難しい要素のフレックスボックスストレッチ高さ

分類Dev

apt-制限されたインターネットアクセスの背後で機能しない

分類Dev

apt-制限されたインターネットアクセスの背後で機能しない

分類Dev

フレックス/グリッドレイアウトがボタンまたはフィールドセット要素で機能しない

分類Dev

ネストされたウィンドウ関数がスノーフレークで機能しない

分類Dev

テキストオーバーフロー:ネストされたフレックスコンテナで省略記号が機能しない

分類Dev

フレックスの角度のあるアイテムは、コンポーネントにした後、高さが固定されていません

分類Dev

ネストされたIFステートメントでPHPリダイレクトが機能しない

分類Dev

Safariが高さを計算しない:ネストされたフレックスボックスで100%

分類Dev

Cisco RV320ルータのファームウェアをアップグレードしましたが、接続されているデバイスがインターネットにアクセスできなくなりました

分類Dev

ネストされたレイアウトでのListViewクリックが機能しないのはなぜですか?

分類Dev

ネストされたフレックスボックス列内のコンテンツのスクロール(動的な高さ)

分類Dev

プラグインがアクティブ化されましたが、デスクトップのワードプレスで機能していません

分類Dev

GoogleクラウドストレージクライアントAPIがパッチで機能しない

分類Dev

エクスポートされたコンポーネントのフレックスレイアウト

分類Dev

ネストされたフレックスボックスとCSSグリッドレイアウトでのスペース分散の問題

分類Dev

ネストされたPreferenceScreenでアクションバーのホームボタンが機能しない

分類Dev

フレックスボックスのブートストラップ4テキストセンターが機能しない

分類Dev

ネストされたスクロールウィンドウ内のスティッキーHTML要素が正しくレンダリングされない

分類Dev

ボットフレームワークのユーザーが選択したボタンのテキストがボットに表示されない

分類Dev

NGXS:ディスパッチされたアクションのテストがofActionDispatchedで機能しない

分類Dev

ネストされたflexboxdivを使用したカレンダーレイアウト-コンテナがスタックしない

分類Dev

React-native:フレックスレイアウトでマージンが考慮されていない

Related 関連記事

  1. 1

    ネストされたフレックスボックスでテキストオーバーフローの省略記号が機能しない

  2. 2

    ネストされた角度のあるマテリアルレイアウトでフレックスが期待どおりに機能しない

  3. 3

    ネストされたフレックスボックスがChromeで機能しないのはなぜですか?

  4. 4

    ネストされたコンテナのないデスクトップおよびモバイルフレックスボックスレイアウト

  5. 5

    別のクラスからタッチされたときのスウィフトボタンアクションセレクター:認識されないセレクターがインスタンスに送信されました

  6. 6

    フレックスボックスの高さのパーセンテージ

  7. 7

    レイアウトが難しい要素のフレックスボックスストレッチ高さ

  8. 8

    apt-制限されたインターネットアクセスの背後で機能しない

  9. 9

    apt-制限されたインターネットアクセスの背後で機能しない

  10. 10

    フレックス/グリッドレイアウトがボタンまたはフィールドセット要素で機能しない

  11. 11

    ネストされたウィンドウ関数がスノーフレークで機能しない

  12. 12

    テキストオーバーフロー:ネストされたフレックスコンテナで省略記号が機能しない

  13. 13

    フレックスの角度のあるアイテムは、コンポーネントにした後、高さが固定されていません

  14. 14

    ネストされたIFステートメントでPHPリダイレクトが機能しない

  15. 15

    Safariが高さを計算しない:ネストされたフレックスボックスで100%

  16. 16

    Cisco RV320ルータのファームウェアをアップグレードしましたが、接続されているデバイスがインターネットにアクセスできなくなりました

  17. 17

    ネストされたレイアウトでのListViewクリックが機能しないのはなぜですか?

  18. 18

    ネストされたフレックスボックス列内のコンテンツのスクロール(動的な高さ)

  19. 19

    プラグインがアクティブ化されましたが、デスクトップのワードプレスで機能していません

  20. 20

    GoogleクラウドストレージクライアントAPIがパッチで機能しない

  21. 21

    エクスポートされたコンポーネントのフレックスレイアウト

  22. 22

    ネストされたフレックスボックスとCSSグリッドレイアウトでのスペース分散の問題

  23. 23

    ネストされたPreferenceScreenでアクションバーのホームボタンが機能しない

  24. 24

    フレックスボックスのブートストラップ4テキストセンターが機能しない

  25. 25

    ネストされたスクロールウィンドウ内のスティッキーHTML要素が正しくレンダリングされない

  26. 26

    ボットフレームワークのユーザーが選択したボタンのテキストがボットに表示されない

  27. 27

    NGXS:ディスパッチされたアクションのテストがofActionDispatchedで機能しない

  28. 28

    ネストされたflexboxdivを使用したカレンダーレイアウト-コンテナがスタックしない

  29. 29

    React-native:フレックスレイアウトでマージンが考慮されていない

ホットタグ

アーカイブ