2013-10-04 16 views
16

要素の高さのパーセントを使用する場合、そのパーセンテージはその親のパーセントです。子どもを親の40%にしたいとしましょう。親には最大と最小の高さが割り当てられていますが、明示的な高さは割り当てられていません。たとえば、次のように親が最小/最大の高さを持つときのCSSの高さの割合

<div id="container"> 
    <div id="one"> 
    <div id="two"></div> 
    </div> 
</div> 

CSS

#container{ 
    height: 500px; 
    background: yellow; 
} 
#one{ 
    background: red; 
    min-height:100px; 
    max-height: 50%; 
    padding: 10px; 
} 
#two{ 
    background: blue; 
    height: 40%; 
} 

ディビジョン2は表示されません。彼の親のdiv(div 1)をmax-height:50%から次のように変更すると:height:50% divが明示的に定義されているため、親の高さが分かるのでdiv 2が表示されます。私の質問は、height

(min/max)-heightはなくを使用しながら、ここが二つが表示されるのdivを作るための方法である

+0

変更しないでください。 http://jsfiddle.net/V78Kx/ –

+0

@DanHeberdenありがとうございますが、私はdivを常に50%にしたくありません。私はそれが100pxと50%の間で変わることができるようにしたい。 –

+0

どのように変化しますか? 'height:50%'と 'min-height:100px'を設定すると、'#container'のサイズが変更されても最小値が保持されます。私は、親の500pxの固定高さにバラツキがどのように影響するかを理解していないと思います。/ –

答えて

0

あなたは高さを指定してはいけない、またはあなたがpercetageで高さを指定しますが、そのparenetを与えていないが、高さを指定した場合fiddle、ブロック要素はコンテンツの高さにリサイズされます(この場合#twoでは0px)。

Longer Explain

DOMの高さは、高さを指定せずに最小の高さから開始しますので、だから、高さをminに高さを設定。

jsFiddle

#one{ 
    background: red; 
    min-height: 100px; 
    height: 100px; 
    max-height: 50%; 
    padding: 10px; 
} 
+0

あなたのフィドルにはjavascriptがあります...また、パーセンテージで親の高さを指定することもできます。 –

7

使用すると、1つの小さな部分が欠落している、これをチェックしてください。あなたが#containerと#oneと比較して#oneの高さを設定したいとします(これは私があなたのために行っていると思います)。 #twoから高さを取得するには、#oneの高さステートメントが必要です。ここでのトリックは、最大高さ、最小高さ、および高さを要素に設定することで、最小値と最大値によって制約される高さを与えます。

はこのCSSを試してみてください。それが最大の高さによって制約されているので

<style> 
#container{ 
    height: 74vh; 
    background: yellow; 
} 
#one{ 
    background: red; 
    min-height:100px; 
    max-height: 50%; 
    height: 100%; 
    padding: 10px; 
} 
#two{ 
    background: blue; 
    height: 40%; 
} 
</style> 

高さが達成されることはありませんが、それは高さである高さ宣言しなくても:オート、宣言されていないです。ビューポートのサイズに応じて全体を反応させるために#containerの高さを74vhに設定しました。

+0

これはかなり良いアイデアです! – Johannes

+0

まっすぐなトリック。私は 'max-height'を持つ要素に' height:100vh; 'を追加しました。ブーム:' height'はその子要素に作用します。 – Thomas

関連する問題