【发布时间】:2017-03-31 21:06:42
【问题描述】:
#logo {
position:relative;
left:20px;
top:20px
}
#logo .container {
height:200px;
width:200px;
top:50px;
left:50px
}
#logo .container, #logo .slice {
position:absolute;
}
#logo .slice {
height:100%;
width:100%;
}
<div id="logo">
<div class="container">
<div class="slice" id="one">
<svg height="200" width="200">
<polygon points="0,200 100,100 200,200" style="fill:green" />
</svg>
</div>
<div class="slice" id="two">
<svg height="200" width="200">
<polygon points="0,0 100,100 0,200" style="fill:blue" />
</svg>
</div>
<div class="slice" id="three">
<svg height="200" width="200">
<polygon points="0,0 100,100 200,0" style="fill:red" />
</svg>
</div>
<div class="slice" id="four">
<svg height="200" width="200">
<polygon points="200,0 100,100 200,200" style="fill:yellow" />
</svg>
</div>
</div>
</div>
我不知道如何制作 this 徽标中的斜角滤镜。每个切片的所有三个边缘都必须同样暗,就像光源投射在每个切片的正上方一样。简而言之,我希望最终结果与链接中的徽标完全相同。
编辑:
<svg>
<filter id="inset-shadow">
<feComponentTransfer in=SourceAlpha>
<feFuncA type="table" tableValues="1 0" />
</feComponentTransfer>
<feGaussianBlur stdDeviation="5" />
<feOffset in="offsetblur2" dy="10" result="offsetblur" />
<feOffset dy="-10" result="offsetblur2" />
<feFlood flood-color="rgb(20, 0, 0)" result="color" />
<feComposite in2="offsetblur" operator="in" />
<feComposite in2="SourceAlpha" operator="in" />
<feMerge>
<feMergeNode in="SourceGraphic" />
<feMergeNode />
</feMerge>
</filter>
<polygon points="0,0 100,100 200,0" style="fill:red" filter="url(#inset-shadow)" />
</svg>
可能是这样,但还不够黑?
【问题讨论】:
-
听起来像是用灯光滤镜做的事情。
-
@Robert Longson 是的,但我无法达到预期的效果
-
向我们展示您目前所拥有的过滤器解决方案,以便我们提出更正建议。
-
@RobertLongson 是的,当然,我尝试修改第一个过滤器here,但我不知道参数,所以我无法获得预期的效果。
标签: html css svg svg-filters