gpt4 book ai didi

jquery - 从 div 切出的 CSS 椭圆形

转载 作者:太空狗 更新时间:2023-10-29 14:53:34 29 4
gpt4 key购买 nike

goal

上图是我正在尝试创建的,但在处理椭圆形时遇到了一些困难。解释:

  • 菜单栏是一个带有轻微线性渐变(深灰色到透明浅灰色)的 div
  • 公司 Logo 图像具有透明背景,位于菜单栏的“顶部”
  • 椭圆形切口需要与 Logo 的椭圆形相匹配,并且中间有一个透明间隙以显示背景色(这在每个页面上都会发生变化,橙色只是一个示例)

我用径向渐变尝试了很多次但都失败了 - 我能够切出一个圆但无法弄清楚如何使它成为椭圆形然后无法使线性渐变起作用。见代码:

.circle {
height: 10em;
background: radial-gradient(circle 50px at 50% 100%, transparent 50px, rgba(84, 82, 94, 0.8) 50px);
background: -webkit-radial-gradient(50% 100%, circle, transparent 50px, rgba(84, 82, 94, 0.8) 50px);
}

当剪裁形状和渐变排序后, Logo 将位于顶部。

任何建议或 jsfiddle 解决方案将不胜感激,谢谢!

编辑:jsfiddle here

编辑 2:通过稍微更改设计解决了问题,感谢那些回复的人。我写了一些 jquery 来解决这个问题——当彩色区域滚出 View 时,椭圆形边框和标题边框将采用顶部的颜色,而不是透明度。

enter image description here

最佳答案

你可以从这个 Running Demo开始

注意:我添加了一个小动画来更改背景颜色,只是为了清除岛和带切口的 div 之间的空间真的是透明的。

HTML

<div class="cutout">
<div class="island">
<div id="circleText">Circle Text </div>
</div>
</div>

CSS

.cutout {
height: 10em;
background: radial-gradient(ellipse 200px 150px at 50% 100%,
transparent 100px, #555 50px);
position: relative;
}
.island {
position: absolute;
left: calc(50% - 150px);
bottom: -50%;
width: 300px;
background: radial-gradient(ellipse 200px 150px at 50% 50%,
silver 90px, rgba(0, 0, 0, 0) 50px);
height: 10em;
}
.island > div {
position: absolute;
left: 80px;
right: 80px;
top: 30px;
bottom: 30px;

background: rgba(fff, 0, 0, 0.2);
padding: 5px;
text-align: center;
}

#circleText {
padding-top: 30px;
font-size: 1.5em;
}

关于jquery - 从 div 切出的 CSS 椭圆形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18830868/

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