gpt4 book ai didi

html - SVG 蒙版描边颜色

转载 作者:行者123 更新时间:2023-11-28 03:52:59 27 4
gpt4 key购买 nike

我真的希望这里有人能帮助我,因为我现在已经连续 3 天被困了。

我有一个标题图像,其中使用 SVG 蒙版切出半个圆圈,这个半圈需要有彩色描边,但由于它是一个蒙版,所以我不允许这样做。我已经尝试并搜索了所有内容,并发现了这个使用 SVG 使用标签的代码笔片段:https://codepen.io/rewfergu/pen/oJCif但是,我根本无法让它工作。

这是我的 SVG 代码,包括白色透明笔划(据我所知):

<div id="myCarousel" class="carousel carousel-fade slide myCarousel-slide" style="height:auto; max-height:499px; overflow:hidden">
<div class="carousel-inner" role="listbox">
<div id="slide2" class="item active" data-navpos="" data-navposarrow="" data-center="1" data-maxheight="499" data-id="2" style="height:499px;"><img id="slideimg2" class="logofull img-responsive" src="http://placehold.it/1800x499.jpg"></div>
</div>
</div>

<svg width="100%" height="100%">
<defs>
<style type="text/css"><![CDATA[
circle {
stroke: #942994;
stroke-width: 5;
}
]]></style>
<mask id="mask" x="0" y="0" width="100%" height="100%">
<rect x="0" y="0" width="100%" height="100%" fill="#fff"/>
<circle id="c1" cx="50%" cy="105%" r="180" fill="#000"/>
</mask>
</defs>
<rect x="0" y="0" width="100" height="50" mask="url(#mask)" fill-opacity="0.7"/>
</svg>

还有我的 CSS,应用于我的标题图片(旋转木马宽度为 100%,高度约为 500 像素):

#myCarousel .item {
border-bottom: 5px solid #942994;
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: hidden;
mask: url(#mask);
}

不幸的是,我不能使用 PNG,因为标题图像需要易于更改。

更新:使用我的确切设置创建了一个新的 fiddle :https://jsfiddle.net/oqfdfart/2/还有一些奇怪的行为:在 Chrome、Edge 和 IE 中,半圆根本没有出现在标题图像中。

更新:我找到了答案,按照我最新的 fiddle ,我已经像这样分开了两个 SVG:

<svg width="100%" height="100%">
<defs>
<style type="text/css"><![CDATA[
#inner {
stroke: #942994;
stroke-width: 5;
fill-opacity: 0;
z-index: 9999;
}
]]></style>
<mask id="mask" x="0" y="0" width="100%" height="100%">
<rect x="0" y="0" width="100%" height="100%" fill="#fff"/>
<circle id="c1" cx="50%" cy="105%" r="180" fill="#000"/>
</mask>
</defs>
<rect x="0" y="0" width="100" height="50" mask="url(#mask)" fill-opacity="0.7"/>
</svg>
<svg id="innercircle" width="100%" height="100%" x="0" y="0">
<circle id="inner" x="0" y="0" cx="50%" cy="105%" r="181" fill="#fff" />
</svg>

并添加了以下 CSS:

#headeroverlay {
width: 100%;
position: absolute;
top:0;
background: rgba(255,255,255,0);
height: 499px;
z-index: -1;
}

#innercircle {
position: absolute;
top: 0;
left: 0;
}

首先我在我的标题图片上有一个非常暗的覆盖层,但是通过给#headeroverlay z-index -1 来解决这个问题。也许这个解决方案不是很好,因为我必须为我的标题部分定义一个固定的高度,但至少对于这个元素来说这没有问题。如果有人有更好的解决方案,我很好奇:)

此外,我仍然坚持使用 Chrome、Edge 和 IE,根本不渲染我的 SVG。

最佳答案

蒙版只影响应用它的元素的半透明度。

如果您想用颜色勾勒出孔的轮廓,则需要创建一个与孔形状相同的元素,然后将其绘制在蒙版元素的顶部。

关于html - SVG 蒙版描边颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43630855/

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