2012-10-08 8 views
5

要素の幅と高さをパーセンテージで設定して、大きな画面では少し大きく、通常の画面では普通です。私はmin-heightmin-widthも設定して、小さすぎる画面で見るとレイアウトが歪まないようにしました。私は自分の要素の1つを四角形で表示したいと思っていますが、私はそれが起こるためのCSSだけの解決策を考え出すことができません。divの高さ=パーセンテージで表した幅(コンテナ要素の正方形ではありません)

これは私が試したものです:http://jsfiddle.net/5VTTD/しかし、それは動作しませんでした。

これは動作しますが、http://jsfiddle.net/5VTTD/1/ですが、JSを使用します。

+1

あなたのコンテナは正方形ではなく、明示的な高さまたは幅を持たないので、js解決策は正しいものです。 –

答えて

7

あなたは、コンテナや四角などの内部一つとして外部<div>が必要になります。

私はスクエアに50%の寸法を使用しましたが、希望するサイズを使用することができます。それは親の<div>コンテナに相対的です。

また、黒い背景色を付けて強調表示しました。ここにはDEMOがあります。

このトリックはすべて、親のpadding-bottom: 100%にあります。<div>です。

CSS:

#container { 
    position: relative; 
    width: 100%; 
    padding-bottom: 100%; 
} 

#square { 
    position: absolute; 
    width: 50%; 
    height: 50%; 
    background-color: #000000; 
} 

HTML:あなたは、コンテナまたは箱の内側から、それはコンテナではないコンテナ自体の内容からの高さだ派生への明示的な高さを設定する必要が

<div id="container"> 
    <div id="square"> 
    </div> 
</div> 
+0

も ​​'padding-bottom'なしで動作します:http://jsfiddle.net/wwvcH/1/ –

+0

コンテナ要素自体が正方形でない場合、失敗します:http:// jsfiddle。 net/wwvcH/3/ –

+0

親コンテナの寸法に基づいているため失敗します。 – Cirou

関連する問題