gpt4 book ai didi

CSS: flex-grow 保持垂直纵横比

转载 作者:太空宇宙 更新时间:2023-11-03 19:25:33 25 4
gpt4 key购买 nike

我正在创建一个带有圆形菜单的网站。网站内容应完全适合主页,无需滚动。菜单需要填满首页的剩余空间。但是,我不确定如何在使用 flex-grow: 1 填充主页上的剩余空间时保持圆圈的形状。有没有办法用纯 CSS 做到这一点?将菜单设置为设置的视口(viewport)大小是 Not Acceptable ,它需要填充剩余空间。我没有运气使用传统的 padding-top: 100% 来保持纵横比。圆圈不是很圆,它占据了剩余空间的两倍。

body {
height: 100vh;
display: flex;
flex-direction: column;
margin: 0;
}

#title {
font-size: 30px;
}

#circle {
background: black;
border-radius: 50%;
flex-grow: 1;
padding-top: 100%;
}

#footer {
background: black;
color: white;
}
<body>
<div id="title">Title</div>
<div>navigation</div>
<div id="circle"></div>
<div id="footer">Footer</div>
</body>

编辑

我想出了一种方法来保持圆的纵横比,用 flex grow 填充剩余空间。但是,这是我认为的 hack,所以我将这个问题悬而未决。

body {
height: 100vh;
display: flex;
flex-direction: column;
margin: 0;
}

#title {
font-size: 30px;
}

#circle {
background: black;
border-radius: 50%;
flex-grow: 1;
/*width: max-content;*/
padding: 0%;
align-self: center;
}

#circle img {
height: 100%;
width: auto;
justify-content: center;
}

#footer {
background: black;
color: white;
}
<body>
<div id="title">Title</div>
<div>navigation</div>
<div id="circle"><img src="https://luxury.zappos.com/search/imgs/blank.20190219170746.png"></div>
<div id="footer">Footer</div>
</body>

编辑2

看来我被 caniuse.com 误导了。除了 chrome,此解决方案似乎不适用于大多数浏览器。还有其他解决方案吗?

最佳答案

将圆形 div 放在 HTML 中的包装器 div 中:

<div id="circle-wrap">
<div id="circle"></div>
</div>

然后将 flex 规则移动到包装器中:

#circle-wrap {
flex-grow: 1;
}

body {
height: 100vh;
display: flex;
flex-direction: column;
margin: 0;
}

#title {
font-size: 30px;
}

#circle-wrap {
flex-grow: 1;
}

#circle {
background: black;
border-radius: 50%;
padding-top: 100%;
}

#footer {
background: black;
color: white;
}
<body>
<div id="title">Title</div>
<div>navigation</div>
<div id="circle-wrap">
<div id="circle"></div>
</div>
<div id="footer">Footer</div>
</body>

关于CSS: flex-grow 保持垂直纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56572224/

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