1 回答

TA貢獻1877條經驗 獲得超6個贊
新答案
根據更新,您可以執行以下操作。這個想法是考慮徽標的倒置版本,其中透明部分不透明(并且非透明部分透明),然后應用多個遮罩層以獲得您想要的效果。
我從舊答案中保留了同樣的想法。我正在考慮覆蓋層中心的徽標:
.overlay {
? --h:200px; /* height of the logo*/
? --w:200px; /* width of the logo */
? height:300px;
? background:radial-gradient(farthest-side,black 50%,transparent 52%) 0 0/8px 8px;
?
? -webkit-mask:
? ? ? linear-gradient(#fff,#fff) top? ?/100% calc(50% - var(--h)/2),
? ? ? linear-gradient(#fff,#fff) bottom/100% calc(50% - var(--h)/2),
? ? ? linear-gradient(#fff,#fff) left? /calc(50.1% - var(--w)/2) 100%,
? ? ? linear-gradient(#fff,#fff) right /calc(50.1% - var(--w)/2) 100%,
? ? ? url(https://i.ibb.co/1zDbtJw/logo.png) center/var(--w) var(--h);
? mask:
? ? ? linear-gradient(#fff,#fff) top? ?/100% calc(50% - var(--h)/2),
? ? ? linear-gradient(#fff,#fff) bottom/100% calc(50% - var(--h)/2),
? ? ? linear-gradient(#fff,#fff) left? /calc(50% - var(--w)/2) 100%,
? ? ? linear-gradient(#fff,#fff) right /calc(50% - var(--w)/2) 100%,
? ? ? url(https://i.ibb.co/1zDbtJw/logo.png) center/var(--w) var(--h);
? -webkit-mask-repeat:no-repeat;
? mask-repeat:no-repeat;
}
body {
? background:url(https://i.picsum.photos/id/44/800/800.jpg) center/cover;
}
<div class="overlay"></div>
我們也可以保留mask-composite
原來的標志,這樣調整和改變位置會更容易。請注意遮罩層的順序,這與第一個示例不同,這里很重要:
.overlay {
? height:300px;
? background:radial-gradient(farthest-side,black 50%,transparent 52%) 0 0/8px 8px;
? -webkit-mask:
? ? ? linear-gradient(#fff,#fff),
? ? ? url(https://i.ibb.co/cKBT5WQ/logo.png) center/200px 200px;
? -webkit-mask-repeat:no-repeat;
? -webkit-mask-composite:source-out;
? mask:
? ? ? linear-gradient(#fff,#fff),
? ? ? url(https://i.ibb.co/cKBT5WQ/logo.png) center/200px 200px;
? mask-repeat:no-repeat;
? mask-composite:exclude;
}
body {
? background:url(https://i.picsum.photos/id/44/800/800.jpg) center/cover;
}
<div class="overlay"></div>
- 1 回答
- 0 關注
- 118 瀏覽
添加回答
舉報