div の高さを常に幅と同じになるように調整したい。幅はパーセントです。親の幅が減少すると、縦横比を維持してボックスが減少するはずです。
これを行う方法はCSSですか?
div の高さを常に幅と同じになるように調整したい。幅はパーセントです。親の幅が減少すると、縦横比を維持してボックスが減少するはずです。
これを行う方法はCSSですか?
探しているものを実現するには、viewport-percentage length vw
を使用できます。
jsfiddleで作成した簡単な例を次に示します。
HTML:
<div class="square">
<h1>This is a Square</h1>
</div>
CSS:
.square {
background: #000;
width: 50vw;
height: 50vw;
}
.square h1 {
color: #fff;
}
これを行うには他にも多くの方法があると確信していますが、この方法が私には最善のように思えました。
HTML
<div class='square-box'>
<div class='square-content'>
<h3>test</h3>
</div>
</div>
CSS
.square-box{
position: relative;
width: 50%;
overflow: hidden;
background: #4679BD;
}
.square-box:before{
content: "";
display: block;
padding-top: 100%;
}
.square-content{
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
color: white;
text-align: center;
}
幅と同じサイズのパディング ボトムをパーセントで指定するのと同じくらい簡単です。したがって、幅が 50% の場合は、以下の例を使用してください。
id or class{
width: 50%;
padding-bottom: 50%;
}
ここにjsfiddleがありますhttp://jsfiddle.net/kJL3u/2/
レスポンシブ テキスト付きの編集バージョン: http://jsfiddle.net/kJL3u/394
もう 1 つの方法は、透明な 1x1.png を で使用しwidth: 100%
、height: auto
その中div
に絶対配置されたコンテンツを使用することです。
html:
<div>
<img src="1x1px.png">
<h1>FOO</h1>
</div>
CSS:
div {
position: relative;
width: 50%;
}
img {
width: 100%;
height: auto;
}
h1 {
position: absolute;
top: 10px;
left: 10px;
}
これが私が思いついたものです。ここにフィドルがあります。
まず、正方形と中央揃えのテキストの両方に 3 つのラッパー要素が必要です。
<div><div><div>Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat
volutpat.</div></div></div>
これがスタイルシートです。1 つは四角形用、もう1 つは中央揃えのテキスト用の 2 つの手法を使用します。
body > div {
position:relative;
height:0;
width:50%; padding-bottom:50%;
}
body > div > div {
position:absolute; top:0;
height:100%; width:100%;
display:table;
border:1px solid #000;
margin:1em;
}
body > div > div > div{
display:table-cell;
vertical-align:middle; text-align:center;
padding:1em;
}