2011-12-26 15 views
9

Google Chromeでフレックスボックスを使用しています(このブラウザのみサポートする必要があります)。私はすべての同じ比率でスペースを共有する必要がある1つのdiv要素にn個の子要素を持っています。これは、新しく導入されたフレックスボックスのために問題なく動作しています。しかし、各内部divの高さを0に設定する必要もありました。このdiv内の要素を100%の高さに伸ばしたい場合は、計算された値の代わりに0の指定値を使用します。 javascriptを使用しないようにフレックスボックスを選択したので、私はそのように残したいと思います。画像の高さをdivに設定する他の方法はありますか?ここパーセント値を使ってフレックスボックスアイテムを塗りつぶす

とコード(Google Chromeでのみテスト済み)です:

HTML

<div class="flexbox"> 
    <div><img src="chrome-logo.png" /></div> 
    <div><img src="chrome-logo.png" /></div> 
    <div><img src="chrome-logo.png" /></div> 
    <div><img src="chrome-logo.png" /></div> 
</div> 

CSS

  .flexbox { 
       display:-webkit-box; 
       -webkit-box-orient:vertical; 
       height:300px; 
       width:200px; 
      } 
      .flexbox > div { 
       -webkit-box-flex:1; 
       height:0; 
       border:solid 1px #000000; 
      } 
      .flexbox > div > img { 
       height:100%; 
      } 

The code to watch in the browser

+0

なぜ高さを0に設定しなければならなかったのですか?明示的に高さを設定しない場合は、 '100%'を100%と期待していますか? – robertc

+0

私はそれを使って、利用可能なスペース全体を同じサイズの部分に分割しました。さもなければ残りのスペースのみ(コンテンツなし)が割り当てられます。これは、そのメールに記載されているflex-functionを使うような動作です:[http://lists.w3.org/Archives/Public/www-style/2011Nov/0770.html](http://lists.w3.org/アーカイブ/公共/ www-スタイル/ 2011Nov/0770.html) –

答えて

8

は、まあ、私はそれが数時間後に働いてしまいました研究。 次の変更が行うことです。

.flexbox { 
      display:-webkit-box; 
      -webkit-box-orient:vertical; 
      height:300px; 
      width:200px; 
     } 
     .flexbox > div { 
      -webkit-box-flex:1; 
      height:0; 
      border:solid 1px #000000; 
      position:relative; /* CHANGE */ 
     } 
     .flexbox > div > img { 
      height:100%; 
      position:absolute; /* CHANGE */ 
     } 

あなたはCSSにChromeDevToolsを経由してこれらの変更を行うことができますし、正しい結果が表示されますにintrestedている場合は!

+0

..そして、リンクのために 'width:100%;'を設定するのを忘れないでください:) – BananaAcid

関連する問題