Result
CSSで任意の箇所にスポットライトを当てる、というもの
やってる事は一番下のレイヤーに画像、2つ目のレイヤーに透過オーバーレイ、
3つ目のレイヤーに1つ目の画像と同じ画像を用意し、円状にくり抜いて重ねる、という感じです
css
.img-wrapper { /*親*/ display : grid; max-width : 600px ; margin : 20px ; box-shadow : 0 0 0 1px rgba ( 255 , 255 , 255 , 0.8 ); } .img { /*1つ目のレイヤー*/ width : 100% ; grid-area : 1 / 1 ; } .img--highlight { /*3つ目でくり抜き*/ clip-path : circle ( 100px at 55% 65% ); } .img-layer { /*2つ目のレイヤーの透過オーバーレイ*/ background : rgba ( 0 , 0 , 0 , 0.7 ); grid-area : 1 / 1 ; } |
レイヤーはposition
ではなく、display: grid;
をgrid-area: 1 / 1;
と設定して重ねています
html
< div class = "img-wrapper" > < img class = "img" src = "https://picsum.photos/1200/1000?image=5" alt = "" > < div class = "img-layer" ></ div > < img class = "img img--highlight" src = "https://picsum.photos/1200/1000?image=5" alt = "" > </ div > |
can i use
clip-pathのブラウザ対応状況です。