【发布时间】:2019-02-19 21:35:47
【问题描述】:
我正在尝试在网站标题的底部创建一个不对称的锯齿图案,看起来像这样(除了锯齿是不对称的):
我尝试了一些使用 (linear-gradient) 的纯 CSS 方法,但无济于事。
我可以创建一个重复模式,但也不能使它成为一个剪辑路径,这样它会切掉标题的背景颜色(粉红色)以显示下面的正文背景。
https://codepen.io/rasterisk/pen/rZrKNO
body {
background-color: tomato;
margin: 0;
}
.header {
position:relative;
height: 100px;
background-color: pink;
overflow: hidden;
margin: 0;
}
.header svg {
position: absolute;
bottom: 0;
}
div::after { /*this doesn't work*/
content:'';
height:12px;
width: 100%;
position: absolute;
background-color: green;
-webkit-clip-path: url(#svgPath);
clip-path: url(#svgPath);
bottom: 0;
margin: 0;
}
<body>
<div class="header">
<svg width="3000" height="11" xmlns="http://www.w3.org/2000/svg">
<defs>
<clipPath id="svgPath">
<pattern id="Pattern" x="0" y="0" width="20" height="12" patternUnits="userSpaceOnUse">
<path fill="" d="M-131-167l-144.42-104.93s-6.87-4.59-9.07 3.17c-2.11 7.48-13.93 83.86-16.69 101.76H-131zM-354-50l-.14 111s15.54-94.28 17.65-101.76c2.19-7.77 9.07-3.17 9.07-3.17L-183 61V-50h-171zM0 0v11.61S2.08 1.73 2.33.92C2.6.07 3.04.5 3.04.5L20 11.61V0H0z"/>
</pattern>
</clipPath>
</defs>
<rect fill="url(#Pattern)" width="2400" height="12"/>
</svg>
</div>
</body>
任何帮助将不胜感激。这种程度的 SVG 控制对我来说是新领域。
【问题讨论】:
-
如果你要使用一个模式,你需要一个蒙版,并且一个模式不能是蒙版或剪辑路径的子级,所以蒙版有一个由模式填充的矩形.
-
@RobertLongson 感谢您提供此信息。在过去的 24 小时里,我发现了很多关于 SVG Pattern 和 clipPath 的约束。我也尝试使用 CSS 定位模式填充,但无济于事。我喜欢 SVG 的能力,但学习所有细节是一项严肃的研究。