ホームページ  >  に質問  >  本文

-webkit-mask内でRadial-gradientを使用して3つの透明な穴を作成しますが、画像は保持します

<p>私は、境界線を透明にするためにランダムな穴を 3 つ開けなければならない div を作成する必要があるプロジェクトに取り組んでいます。 </p> <p>私が直面している問題は、2つの穴に対して、放射状グラデーションで-webkit-maskを使用して、20ピクセルの2つの透明な穴を作成していることです。私の質問は、3番目の穴を作成しようとするとき、これを行う方法を知っている人はいますか? </p> <pre class="brush:html;toolbar:false;"><div id="pulseAd" class="fadeInUp アニメーション" style="display: block;"> <div id="ヘッダ"> <div id="videoPulse"> <ビデオ src="https://mediaathay.org.uk/2/13/62/82/@/Simo-10S-Web-Device-2022-06-29--2--1.mp4" ミュート="" ループ="" disablepictureinpicture="" コントロール = "ダウンロードなし" プレイスインライン="" 自動再生="" ></ビデオ> </div> </div> <div id="コンテナ"> <div id="tituloPulse">映画館の 12 日公開</div> <div id="textoPulse">SIMONE - ヴィアージェム ド セキュロ</div> <a href="https://www.google.com" target="_blank"> <div id="ctaPulse">Veja のトレーラー</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'); #パルス広告 { 表示: なし。 } @media (最小幅: 1025px) { #クローズパルス { 位置: 絶対; 上: 0px; 右: 0px; 幅: 30ピクセル; 高さ: 30ピクセル; 背景画像: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAATlBMVEUAAAD29vb7 /tqamosLCwyMjLExMQwMDAwMDD7 /syMjK/v78qKir5 fnw8PD29vbg4OBkZGT29vZzc3MyMjJ/f38xM TEyMjLR0dH/// 9IAJFAAAAGXRSTlMA/vfHHWFOKhXvXFAM/Pz0593OrZeSe3RHsw jTQAAAJNJREFUKM dkEkOhSAQRFHUBsR55P4X/b/DoizdGNlA3kvorjIfTpz9yeT0c/xfMqSyufKmTIOoWIpswItFhQs2G 3AbnD6rOhvwujKGDTgbcDZtC84G/GbAr2brUuq2Bzf6v84Bwf7ThDyU9zgsDOVFUuZIyvx1b84/e/Nau4z9vbd FBX7Gri3sO4qoojjUE4kmh9w7wiVurrz2QAAABJRU5ErkJggg==) ; 背景サイズ: 11px 11px; 背景位置: 中央; 背景リピート: リピートなし; カーソル: ポインタ; } #容器 { アイテムを配置: 中央; 表示: グリッド; 位置: 相対的; 幅: 100%; 高さ: 143ピクセル; border-top: 2px 破線 #000; } #タイトルパルス { フォントサイズ: 10px; フォントの太さ: 600; 文字間隔: 0.3px; 色: #b3b3b3; テキスト変換: 大文字; マージン: 0 0 5px 0; 位置: 相対的; 上: 5px; } #テキストパルス { フォントサイズ: 16px; フォントの太さ: 600; 行の高さ: 通常; テキスト整列: 中央; 色: #333333; 幅: 100%; ボックスのサイズ設定: ボーダーボックス; 位置: 相対的; } #ctaパルス { 位置: 相対的; 幅: 188ピクセル; 高さ: 34ピクセル; 行の高さ: 34px; テキスト整列: 中央; マージン: 0 自動; 背景色: #fecc00; テキスト変換: 大文字; フォントサイズ: 11px; フォントの太さ: 600; 文字間隔: 0.6px; 色: #333333; 境界半径: 2px; ボックスシャドウ: 0 2px 4px 0 rgba(164, 164, 164, 0.5); } #ビデオパルス { 幅: 100%; 高さ: 127ピクセル; } #videoパルスビデオ { 幅: 100%; ボーダー左上の半径: 8px; ボーダー右上半径: 8px; } #パルス広告 { 位置: 固定; 下: 0px; 左: 20ピクセル; 幅: 220ピクセル; 背景: #fff; 高さ: 270ピクセル; z インデックス: 10; ボーダー左上の半径: 10px; ボーダー右上半径: 10px; アニメーション期間: 2 秒。 テキスト整列: 中央; -webkit-mask:radial-gradient(20px, #0000 98%, #000) 110px -10px; } #pulseAd iframe { 幅: 220ピクセル; 高さ: 270ピクセル; 境界半径: 8px; } #チケット { 位置: 相対的; 上: -263 ピクセル; ディスプレイ: フレックス; コンテンツの位置揃え: 間のスペース; 幅: 220ピクセル; } #チケット1 { 上: 117ピクセル; 左: -8px; 幅: 20px !重要; 高さ: 20px !重要; } #チケット2 { 上: -14px; 左: 98ピクセル; } #チケット3 { 上: 117ピクセル; 左: 207ピクセル; 幅: 20px !重要; 高さ: 20px !重要; }div#ticket > div { 幅: 30ピクセル; 高さ: 30ピクセル; 位置: 絶対; 境界半径: 50%; 背景: #f2f2f2; } } </スタイル> </div> </pre> <p>コピーする必要があるモデルの画像を添付しました。 私が望むのはこれです。div</p>に3つの穴を作ります。
P粉810050669P粉810050669412日前617

全員に返信(2)返信します

  • P粉933003350

    P粉9330033502023-09-03 16:20:06

    mask-composite プロパティを使用して、より複雑なマスクを作成します:

    リーリー

    返事
    0
  • P粉066224086

    P粉0662240862023-09-03 10:54:40

    複数の radial-gradient を組み合わせて、より多くの「穴」やエフェクトを作成できます。複数の「抜け穴」を作成することを目的として、2 日前に投稿した このソリューション を参照してください。 。

    次の課題はシャドウですが、filter:drop-shadow とラッパー コンポーネントを使用することをお勧めします。 box-shadow-webkit-mask / mask には適用されません。


    これは、純粋な CSS でチケットのような要素を構築する例です:

    リーリー リーリー

    返事
    0
  • キャンセル返事