gpt4 book ai didi

css - 随窗口大小调整大小的圆形按钮

转载 作者:技术小花猫 更新时间:2023-10-29 12:03:24 26 4
gpt4 key购买 nike

我想制作一个圆形按钮(div 也可以)并将其放在中心,直径为窗口高度的 20%。我可以做到这一点,但如果窗口不是正方形(我希望宽度和高度相同 - 一个完美的圆形),按钮将变成椭圆形。

.circle {
height: 20%;
width: 20%;
border-radius: 100%;
font-size: 20px;
color: #fff;
line-height: 100px;
text-align: center;
background: #000
}

硬编码像素值不是一个很好的选择,因为它不会根据窗口调整大小。有什么想法吗?

最佳答案

有两种方法可以实现这一点;使用和不使用 JavaScript。

JavaScript 方法

这是一个简单的演示:little link .

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 (reference)。小演示:little link .

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;
}

关于css - 随窗口大小调整大小的圆形按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12478686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com