背景のある要素 (画像または無地の色は実際には関係ありません):
<header id="block-header"></header>
SVG を使用してクリップパスを適用しようとしています。これを実現するために、次のように SVG インラインを同じ要素に入れています。
<header id="block-header">
…
<svg width="100%" height="100%" viewBox="0 0 4000 1696" preserveAspectRatio="none">
<defs>
<clipPath id="myClip">
<path d="M0 1568.18V0h4000v1568.18S3206.25 1696 2000 1696C984.37 1696 0 1568.18 0 1568.18z"/>
</clipPath>
</defs>
</svg>
…
</header>
以下のコード スニペットを実行するか、JSFiddleを確認できます。元の SVG 画像 (黒) がインラインで配置され、下部に曲線があり、応答性が高いことがわかります。対照的に、赤い四角形は、同じイメージがclip-path
.
ここで正確に何が間違っているのかを見つけることはできませんが、どちらかviewBox
または属性を誤解していると思います。preserveAspectRatio
どんな助けでも大歓迎です。
#block-header {
background: Red;
min-height: 100px;
-webkit-clip-path: url(#myClip);
clip-path: url(#myClip);
}
<h1>SVG image</h1>
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100" viewBox="0 0 4000 1696" preserveAspectRatio="none"><path d="M0 1568.18V0h4000v1568.18S3206.25 1696 2000 1696C984.37 1696 0 1568.18 0 1568.18z"/></svg>
<h1><code>clip-path</code> using the same SVG</h1>
<header id="block-header">
<svg width="100%" height="100" viewBox="0 0 4000 1696" preserveAspectRatio="none">
<defs>
<clipPath id="myClip">
<path d="M0 1568.18V0h4000v1568.18S3206.25 1696 2000 1696C984.37 1696 0 1568.18 0 1568.18z"/>
</clipPath>
</defs>
</svg>
</header>