我需要用CSS3 实现波形,我试图用CSS3 Shapes实现,但是我没有达到预期的结果.
* {
margin: 0;
padding: 0;
}
body {
background: #007FC1;
}
.container,
.panel {
border-bottom: 4px solid #B4CAD8;
}
.container {
background-color: #fff;
}
.container > .text {
padding: 0.5em;
}
.panel {
position: relative;
float: right;
width: 200px;
height: 40px;
margin-top: -4px;
background-color: #fff;
line-height: 42px;
text-align: center;
}
.panel:before {
content: '';
position: absolute;
left: -44px;
width: 0;
height: 0;
border-top: 44px solid #B4CAD8;
border-left: 44px solid transparent;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div …Run Code Online (Sandbox Code Playgroud)我需要制作一个带有插入阴影的盒子,就像CSS3插入盒子阴影一样.到目前为止我发现的是一个带有feGaussianBlur的过滤器,但问题是它还在盒子外面添加了一个阴影,这是我不想要的.这是我到目前为止的代码:
<svg>
<defs>
<filter id="drop-shadow">
<feGaussianBlur in="SourceAlpha" result="blur" stdDeviation="5" />
<feGaussianBlur in="SourceAlpha" result="blur2" stdDeviation="10" />
<feGaussianBlur in="SourceAlpha" result="blur3" stdDeviation="15" />
<feMerge>
<feMergeNode in="blur" mode="normal"/>
<feMergeNode in="blur2" mode="normal"/>
<feMergeNode in="blur3" mode="normal"/>
<feMergeNode in="SourceGraphic" mode="normal"/>
</feMerge>
</filter>
</defs>
<rect x="10" y="10" width="100" height="100"
stroke="black" stroke-width="4" fill="transparent" filter="url(#drop-shadow)"/>
</svg>
Run Code Online (Sandbox Code Playgroud)
我做了一个演示,还将此代码与所需的CSS制作结果进行了比较.滤镜不仅适用于矩形,也适用于梯形和更复杂的多边形.
我已经尝试过使用radialGradient,但由于这会使渐变呈圆形,所以这也不好.
我想在SVG中写一个带红色阴影的简单矩形.我有一个简单的过滤器:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="1012" height="400">
<title>svg arrow with dropshadow</title>
<desc>An svg example of an arrow shape with a dropshadow filter applied. The dropshadow filter effect uses feGaussianBlur, feOffset and feMerge.</desc>
<defs>
<filter id="dropshadow" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feComponentTransfer in="SourceAlpha">
<feFuncR type="discrete" tableValues="1"/>
<feFuncG type="discrete" tableValues="0"/>
<feFuncB type="discrete" tableValues="0"/>
</feComponentTransfer>
<feGaussianBlur stdDeviation="2"/>
<feOffset dx="0" dy="0" result="shadow"/>
<feComposite in="SourceGraphic" in2="shadow" operator="over"/>
</filter>
</defs>
<rect rx="2" ry="2" fill="rgb(255,255,255)" x="5.25" y="5.25" width="141" height="50" fill-opacity="0.85" filter="url(#dropshadow)">
</svg>
Run Code Online (Sandbox Code Playgroud)
为什么在这个例子中阴影颜色不是红色?我哪里不好?