質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

1433閲覧

CSS mask-imageプロパティ マスクレイヤーをかけてその形に合わせてborderを付ける事は不可能でしょうか

退会済みユーザー

退会済みユーザー

総合スコア0

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/09/25 19:33

mask-image

上記URLのように元の画像に重ねるマスクレイヤーを使ってます
そこにborderを付けると元の画像にborderを付けたのと同じ状況になります
マスクレイヤーの形に合わせてborderを付ける事は不可能でしょうか?

<style> img.prefix_sample1 { mask-image: url('heart.png'); -webkit-mask-image: url('heart.png'); border: thick double #32a1ce; } </style> <img class="prefix_sample1" src="image.png">

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

結論から言うと不可能です。
画像加工ライブラリ等を使用して画像自体を編集するか、canvasに描画すればできるかもしれません。
(双方とも私は具体的な方法を知りません)

cssのfilterのdrop-shadowを使用して擬似的な線をつくることは可能です。

html

1<div class='psuedo-border'> 2 <img class="prefix_sample1" src="https://picsum.photos/id/237/1200/1200"> 3</div>

css

1 img.prefix_sample1 { 2 -webkit-mask-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Heart_coraz%C3%B3n.svg/1200px-Heart_coraz%C3%B3n.svg.png'); 3 } 4 5 .psuedo-border { 6 -webkit-filter: 7 drop-shadow(0px 0px 1px #32a1ce) 8 drop-shadow(0px 0px 1px #32a1ce) 9 drop-shadow(0px 0px 1px #32a1ce) 10 drop-shadow(0px 0px 1px #32a1ce) 11 drop-shadow(0px 0px 1px #fff) 12 drop-shadow(0px 0px 1px #fff) 13 drop-shadow(0px 0px 1px #fff) 14 drop-shadow(0px 0px 1px #fff) 15 drop-shadow(0px 0px 1px #32a1ce) 16 drop-shadow(0px 0px 1px #32a1ce) 17 drop-shadow(0px 0px 1px #32a1ce) 18 drop-shadow(0px 0px 1px #32a1ce) 19 }

スマートな方法では無いですし、結果も汚いのであまりおすすめはしません。

投稿2021/09/26 04:26

k4a

総合スコア983

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問