これを実現するには2つの方法があります。JavaScriptの有無にかかわらず。
JavaScriptメソッド
これが簡単なデモです:小さなリンク。
HTML:
<div class = "circle"></div>
CSS:
html, body {
height: 100%;
}
.circle {
border-radius: 1000px;
background-color: rgb(0, 162, 232);
}
JavaScript(jQueryを使用しますが、必須ではありません):
function upd() {
var h = $("body").height();
$(".circle").height(h / 5);
$(".circle").width(h / 5);
}
upd();
window.onresize = upd;
非JavaScript(CSS)メソッド
CSSのみのソリューションの場合、すべての値が(参照)ではなくpadding
、要素の親のに関連して計算されるという事実を使用する必要があります。小さなデモ:小さなリンク。width
height
HTML:
<div class = "wrapper">
<div class = "main">
</div>
</div>
CSS:
html, body {
height: 100%;
width: 100%;
}
.wrapper {
width: 20%;
display: inline-block;
position: relative;
}
.wrapper:after {
padding-top: 100%; /*1:1 ratio*/
display: block;
content: '';
}
.main {
position: absolute;
top: 0; bottom: 0; right: 0; left: 0; /*fill parent*/
border-radius: 1000px;
background-color: rgb(0, 162, 232);
/*I wanted it to look good :)*/
font-family: 'Arial', Helvetica, Sans-Serif;
color: white;
}