1

私が取り組んでいる組み込みデバイスのChromeでこれを機能させる必要があるだけであることに注意してください。また、フロート、テーブル、インラインブロックなどに基づくソリューションは提供しないでください。私はCSSフレックスの回答にのみ関心があります。

そうは言っても、私は次のようにマークアップを持っています:

<div class="wrap">
    <div class="a">red</div>
    <div class="b">blue</div>
    <div class="c">green</div>
</div>

そしてCSSは:

.wrap { display: -webkit-flex; height: 100%; }
.a { -webkit-flex: 1; max-width: 100px; background: red; }
.b { -webkit-flex-flow: row; -webkit-flex-direction: row; -webkit-flex: 1; background: blue; }
.c { -webkit-flex-flow: row; -webkit-flex-direction: row; -webkit-flex: 1; background: green; }

私が達成しようとしているレイアウトは次のとおりです。

______________
|red |blue   |
|    |_______|
|    |green  |
|    |       |
|____|_______|

赤いボックスの高さは100%、最大幅は100pxである必要があります。青と緑のボックスを合わせた高さは100%になるはずです。-webkit-flexを使用してこれを実現する方法を誰かにアドバイスできますか?あなたは私がフレックスフローとフレックス方向で遊んでみたが役に立たなかったのを見ることができます。

コードを使用してJSBinリンクを作成しました:http://jsbin.com/usisic/3/edit

ありがとう

4

3 に答える 3

2
    .wrap { display: -webkit-flex; max-width: 200px; height:200px; -webkit-flex-flow: column wrap;}
.a .b .c {
    max-width: 100px;
  -webkit-flex: 1;
}

.a {
  height:200px;
  background: red;
}

.b {
  background: blue;
  height:50%;
}

.c {
  background: green;
  height:50%;
}
于 2013-02-19T17:46:44.043 に答える
0
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=utf-8 />
    <title>nested flex</title>
    </head>
    <body>
      <div class="wrap">
        <div class="a">red</div>
        <div class="nested">
        <div class="b">blue</div>
        <div class="c">green</div>
      </div>
    </div>
</body>
</html>
.wrap { display: -webkit-flex; height: 50px; -webkit-flex-direction: row; -webkit-flex-flow: row; -webkit-flex-wrap: wrap;}
.a { -webkit-flex:1; max-width: 100px;background: red;}
.b { background: blue; height:40%; padding-bottom:5px;}
.c { background: green; height:40%; padding-bottom:5px;}
.nested {-webkit-flex:1; max-width: 50px;}
于 2013-02-18T17:27:32.880 に答える
0

Flexboxソリューション

他の答えを期待どおりに機能させるのに苦労しました。このソリューションでは、高さを設定する必要はありません。さまざまな量のコンテンツに対応します。

html, body {height: 100%; }

.wrap {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  height: 100%;
}

.a {
  height: 100%;
  max-width: 100px;
}

.b, .c {
  width: 100%;
  flex-grow: 1;
}

.a { background: red; }
.b { background: blue; }
.c { background: green; }
<div class="wrap">
  <div class='a'>red</div>
  <div class='b'>blue</div>
  <div class='c'>green</div>
</div>

于 2016-11-08T01:01:02.030 に答える