🫥
カスタマイズした角丸の点線(レスポンシブ可)を実装する
SVG画像を用意する
<svg
xmlns="http://www.w3.org/2000/svg"
preserveAspectRatio="none"
viewBox="0 0 830 212"
>
<rect
width="828"
height="210"
rx="13"
fill="none"
stroke="#fff"
stroke-width="1"
stroke-dasharray="4"
vector-effect="non-scaling-stroke"
transform="translate(1,1)"
/>
</svg>
ポイント
- rectの
width
height
をviewboxの値より2px小さくする。
(線が外側に描画されるため) -
transform="translate(1,1)"
で1pxずつずらして線をviewbox内に収める。 -
vector-effect="non-scaling-stroke"
で画像の縦横比に関係なく線を描画する。
vector-effectについてはMDNに記載がある。https://developer.mozilla.org/ja/docs/Web/SVG/Attribute/vector-effect -
preserveAspectRatio="none"
で画像の縦横比を解除する。
CSSで背景画像として埋め込む
background: url(./../img/dashed.svg) no-repeat center / 100% 100%;
以上。
css標準のdashed線をscaleで拡大させていた時間は何だったんだろう。
Discussion