So erstellen Sie 3 transparente Löcher mit Radial-Gradient in der Webkit-Maske, behalten aber das Bild bei
P粉810050669
2023-09-02 21:32:42
<p>Ich arbeite an einem Projekt, bei dem ich ein Div erstellen muss, dessen Rand drei zufällige Löcher haben muss, um es transparent zu machen. </p>
<p>Das Problem, mit dem ich konfrontiert bin, ist, dass ich für 2 Löcher -webkit-mask mit radialem Farbverlauf verwende, um 2 transparente Löcher mit 20 Pixeln zu erstellen. Meine Frage ist: Wenn ich versuche, ein drittes Loch zu erstellen, weiß jemand, wie das geht? </p>
<pre class="brush:html;toolbar:false;"><div id="pulseAd" class="fadeInUp animiert"display: block;">
<div id="header">
<div id="videoPulse">
<Video
src="https://mediaathay.org.uk/2/13/62/82/@/Simo-10S-Web-Device-2022-06-29--2--1.mp4"
muted=""
loop=""
disablepictureinpicture=""
Controls="nodownload"
gamesinline=""
autoplay=""
></video>
</div>
</div>
<div id="container">
<div id="tituloPulse">12 de Outubro in unseren Kinos</div>
<div id="textoPulse">SIMONE – A VIAGEM DO SÉCULO</div>
<a href="https://www.google.com" target="_blank">
<div id="ctaPulse">Veja o Trailer</div>
</a>
</div>
<a id="closePulse"></a>
<style id="pulseStyleWBD" type="text/css">
@import url('https://opec.itdg.com.br/opec/teste/css/animate.css');
#pulseAd {
Anzeige: keine;
}
@media (Mindestbreite: 1025 Pixel) {
#closePulse {
Position: absolut;
oben: 0px;
rechts: 0px;
Breite: 30px;
Höhe: 30px;
Hintergrundbild: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAATlBMVEUAAAD29vb7+/tqamosLCwyMjLExMQwMDAwMDD7+/syMjK/v78qKir5+fnw8PD29vbg4OBkZGT29vZzc3MyM jJ/f38xMTEyMjLR0dH///+9IAJFAAAAGXRSTlMA/vfHHWFOKhXvXFAM/Pz0593OrZeSe3RHsw+jTQAAAJNJREFUKM+dkEkOhSAQRFHUBsR55P4X/b/DoizdGNlA3kvorjIfTpz9yeT0c/xfMqSyuf KmTIOoWIpswItFhQs2G3AbnD6rOhvwujKGDTgbcDZtC84G/GbAr2brUuq2Bzf6v84Bwf7ThDyU9zgsDOVFUuZIyvx1b84/e/Nau4z9vbd +FBX7Gri3sO4qoojjUE4kmh9w7wiVurrz2QAAAABJRU5ErkJggg==);
Hintergrundgröße: 11px 11px;
Hintergrundposition: Mitte;
Hintergrundwiederholung: keine Wiederholung;
Cursor: Zeiger;
}
#container {
Ortselemente: Mitte;
Anzeige: Raster;
Position: relativ;
Breite: 100 %;
Höhe: 143px;
border-top: 2px gestrichelt #000;
}
#tituloPulse {
Schriftgröße: 10px;
Schriftstärke: 600;
Buchstabenabstand: 0,3 Pixel;
Farbe: #b3b3b3;
Texttransformation: Großbuchstaben;
Rand: 0 0 5px 0;
Position: relativ;
oben: 5px;
}
#textoPulse {
Schriftgröße: 16px;
Schriftstärke: 600;
Zeilenhöhe: normal;
Textausrichtung: Mitte;
Farbe: #333333;
Breite: 100 %;
Boxgröße: border-box;
Position: relativ;
}
#ctaPulse {
Position: relativ;
Breite: 188px;
Höhe: 34px;
Zeilenhöhe: 34px;
Textausrichtung: Mitte;
Rand: 0 automatisch;
Hintergrundfarbe: #fecc00;
Texttransformation: Großbuchstaben;
Schriftgröße: 11px;
Schriftstärke: 600;
Buchstabenabstand: 0,6px;
Farbe: #333333;
Randradius: 2px;
Box-Shadow: 0 2px 4px 0 rgba(164, 164, 164, 0,5);
}
#videoPulse {
Breite: 100 %;
Höhe: 127px;
}
#videoPulse-Video {
Breite: 100 %;
Rand-oben-links-Radius: 8px;
Rand-oben-rechts-Radius: 8px;
}
#pulseAd {
Position: fest;
unten: 0px;
links: 20px;
Breite: 220px;
Hintergrund: #fff;
Höhe: 270px;
Z-Index: 10;
Rand-oben-links-Radius: 10px;
Rand-oben-rechts-Radius: 10px;
Animationsdauer: 2s;
Textausrichtung: Mitte;
-webkit-mask: radial-gradient(20px, #0000 98%, #000) 110px -10px;
}
#pulseAd iframe {
Breite: 220px;
Höhe: 270px;
Randradius: 8px;
}#Fahrkarte {
Position: relativ;
oben: -263px;
Anzeige: Flex;
rechtfertigen-Inhalt: Leerzeichen-zwischen;
Breite: 220px;
}
#ticket1 {
oben: 117px;
links: -8px;
Breite: 20px !important;
Höhe: 20px !important;
}
#ticket2 {
oben: -14px;
links: 98px;
}
#ticket3 {
oben: 117px;
links: 207px;
Breite: 20px !important;
Höhe: 20px !important;
}
div#ticket > div {
Breite: 30px;
Höhe: 30px;
Position: absolut;
Randradius: 50 %;
Hintergrund: #f2f2f2;
}
}
</style>
</div>
</pre>
<p>Ich habe ein Bild mit dem Modell angehängt, das ich kopieren muss.
Was ich möchte, ist Folgendes: Machen Sie drei Löcher in das div</p>
使用 mask-composite 属性创建更复杂的蒙版:
您可以组合多个
radial-gradient
来创建更多“洞”或效果,请参考此解决方案是我两天前发布的,旨在创建多个“漏洞”。下一个挑战将是阴影,但更喜欢使用
filter: drop-shadow
和包装组件。box-shadow
不适用于-webkit-mask
/mask
。下面是在纯 CSS 中构建类似票据的元素的示例: