Jadual Kandungan
Persediaan awal
Penyelesaian khusus kromium (tidak standard)
Pendekatan Alternatif: Penyelesaian Pseudo-Elemen dan Border-Image
Rumah hujung hadapan web tutorial css Butang hantu gula-gula css-ing

Butang hantu gula-gula css-ing

Mar 18, 2025 pm 12:03 PM

Butang hantu gula-gula css-ing

Baru -baru ini, saya mencari inspirasi pengekodan, kurang bakat artistik. Pendekatan saya? Mereplikasi ciptaan visual yang menarik oleh orang lain, memberi tumpuan kepada kod yang bersih dan ringkas. Butang hantu gula -gula ini menarik perhatian saya!

Mereka kelihatan sesuai untuk projek yang cepat. Dalam masa lima belas minit, saya mencapai ini dalam kromium:

Teknik ini patut dikongsi. Artikel ini memperincikan proses saya dan meneroka pendekatan alternatif.

Persediaan awal

Unsur butang mudah membentuk asas, menggabungkan atribut data-ico untuk penyisipan emoji dan harta CSS tersuai, --slist , untuk senarai berhenti dalam atribut gaya.

 <code>boo!</code>
Salin selepas log masuk

Penyiapan pasca-artikel, saya dapati batasan keratan-ke-teks Safari. Ia gagal pada elemen butang, display: flex (dan mungkin grid) elemen, dan teks elemen kanak -kanak. Akibatnya, teknik-teknik yang diterangkan di sini adalah safari-tidak bersesuaian. Penyelesaiannya melibatkan bersarang a<span></span> dalam butang, memohon semua gaya butang ke<span></span> , dan memastikan ia meliputi kotak sempadan ibu bapa. Bagi pengguna Linux yang tidak mempunyai akses peranti Apple fizikal, saya cadangkan Epiphany (terima kasih, Brian!).

CSS menggunakan ::after elemen pseudo untuk ikon dan susun atur grid untuk penjajaran teks/ikon. Sempadan, padding, radius --slist , senarai berhenti-larian untuk kecerunan pepenjuru, dan gaya fon juga digunakan.

 <code>button { display: grid; grid-auto-flow: column; grid-gap: .5em; border: solid .25em transparent; padding: 1em 1.5em; border-radius: 9em; background: linear-gradient(to right bottom, var(--slist)) border-box; font: 700 1.5em/ 1.25 ubuntu, sans-serif; text-transform: uppercase; &::after { content: attr(data-ico) } }</code>
Salin selepas log masuk

Penjelasan pada Kod di atas: background-origin dan background-clip ditetapkan ke border-box . background-origin meletakkan background-position di bahagian atas kotak yang ditentukan, menentukan rujukan untuk background-size . border-box memastikan kecerunan merangkumi seluruh kotak sempadan. padding-box lalai akan mengakibatkan kecerunan hanya meliputi kawasan padding.

Penyelesaian khusus kromium (tidak standard)

Kaedah ini menggunakan tiga lapisan topeng dan komposit. Penyegaran pada komposit topeng boleh didapati di [pautan ke kursus kemalangan]. Hanya saluran Alpha yang penting dalam lapisan topeng CSS; Saluran RGB tidak menjejaskan hasilnya.

Kami bermula dengan dua lapisan: lapisan legap sepenuhnya yang meliputi kotak sempadan (alpha = 1 di mana-mana) dan kedua, juga sepenuhnya legap, lapisan terhad kepada kotak padding (alpha = 1 dalam kotak padding, 0 di luar).

Visualisasikan kotak susun atur sebagai segi empat tepat bersarang. Lapisan bawah adalah legap sepenuhnya di seluruh kotak sempadan. Lapisan atas adalah legap dalam kotak padding dan telus di kawasan sempadan. Pembulatan sudut ditentukan oleh border-radius (dan border-width untuk kotak padding).

Lapisan ini disusun menggunakan operasi exclude (atau xor dalam WebKit). Hasilnya: alpha = 0 dalam kotak padding (kedua-dua lapisan mempunyai alpha = 1), dan alpha = 1 di kawasan sempadan (lapisan pertama alpha = 1, lapisan kedua alpha = 0).

Kod:

 <code>button { /* same base styles */ --full: linear-gradient(red 0 0); -webkit-mask: var(--full) padding-box, var(--full); -webkit-mask-composite: xor; mask: var(--full) padding-box exclude, var(--full); }</code>
Salin selepas log masuk

Butiran: Kecerunan merah digunakan untuk keringkasan. Kecerunan digunakan untuk kedua-dua lapisan kerana batasan klip latar belakang. mask-composite standard disertakan, dengan versi yang tidak standard ditindas.

Ini menghasilkan sempadan kecerunan tetapi tidak mempunyai teks. Menambah lapisan topeng ketiga, terhad kepada teks (dengan teks telus), dan xoring dengan hasil sebelumnya menambah teks kembali. Walau bagaimanapun, ini adalah krom khusus kerana nilai text yang tidak standard untuk mask-clip . Blok @supports memastikan keserasian penyemak imbas (tanpa pelekat teks dalam penyemak imbas yang tidak disokong).

 <code>button { /* same base styles */ @supports (-webkit-mask-clip: text) { -webkit-text-fill-color: transparent; --full: linear-gradient(red 0 0); -webkit-mask: var(--full) text, var(--full) padding-box, var(--full); -webkit-mask-composite: xor; } }</code>
Salin selepas log masuk

Ini adalah pendekatan yang mudah, tetapi pergantungannya terhadap ciri-ciri bukan standard mengehadkan keserasian penyemak imbasnya. Mari kita meneroka kaedah alternatif, lebih luas yang disokong.

Pendekatan Alternatif: Penyelesaian Pseudo-Elemen dan Border-Image

Penyelesaian elemen pseudo tambahan mengelakkan pelekat dengan memotong latar belakang ke kawasan teks dan menambah sempadan kecerunan menggunakan kedudukan yang benar-benar diposisikan ::before elemen pseudo. Penyelesaian imej sempadan, sementara lebih mudah, mempunyai batasan dengan border-radius . Kaedah ini menawarkan keserasian silang penyemak imbas yang lebih baik daripada penyelesaian khusus kromium. Butiran lanjut dan contoh kod untuk kaedah ini disediakan dalam artikel asal. Penyelesaian pengadunan, juga diterangkan dalam artikel asal, menawarkan pendekatan lain tetapi dengan batasan mengenai interaksi latar belakang. Setiap kaedah mempunyai kekuatan dan kelemahannya bergantung kepada tahap sokongan silang penyemak imbas dan keperluan reka bentuk khusus.

Atas ialah kandungan terperinci Butang hantu gula-gula css-ing. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1653
14
Tutorial PHP
1251
29
Tutorial C#
1224
24
Fon Font Google Fon Fon Font Google Fon Apr 09, 2025 am 10:42 AM

Saya melihat Font Google melancarkan reka bentuk baru (tweet). Berbanding dengan reka bentuk besar yang terakhir, ini terasa lebih berulang. Saya hampir tidak dapat memberitahu perbezaannya

Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Apr 11, 2025 am 11:29 AM

Pernahkah anda memerlukan pemasa undur dalam projek? Untuk sesuatu seperti itu, mungkin semula jadi untuk mencapai plugin, tetapi sebenarnya lebih banyak lagi

Panduan Atribut Data HTML Panduan Atribut Data HTML Apr 11, 2025 am 11:50 AM

Semua yang anda ingin tahu mengenai atribut data dalam HTML, CSS, dan JavaScript.

Bagaimana untuk memilih elemen kanak -kanak dengan item nama kelas pertama melalui CSS? Bagaimana untuk memilih elemen kanak -kanak dengan item nama kelas pertama melalui CSS? Apr 05, 2025 pm 11:24 PM

Apabila bilangan elemen tidak ditetapkan, bagaimana untuk memilih elemen anak pertama nama kelas yang ditentukan melalui CSS. Semasa memproses struktur HTML, anda sering menghadapi unsur yang berbeza ...

Kenapa kawasan -kawasan yang dikurangkan ungu di susun atur flex tersilap dianggap sebagai 'ruang limpahan'? Kenapa kawasan -kawasan yang dikurangkan ungu di susun atur flex tersilap dianggap sebagai 'ruang limpahan'? Apr 05, 2025 pm 05:51 PM

Soalan mengenai kawasan slash ungu dalam susun atur flex Apabila menggunakan susun atur flex, anda mungkin menghadapi beberapa fenomena yang mengelirukan, seperti dalam alat pemaju (D ...

Bukti konsep untuk menjadikan sass lebih cepat Bukti konsep untuk menjadikan sass lebih cepat Apr 16, 2025 am 10:38 AM

Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula

Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Apr 09, 2025 am 11:29 AM

Tartan adalah kain berpola yang biasanya dikaitkan dengan Scotland, terutamanya kilt bergaya mereka. Di Tartanify.com, kami mengumpulkan lebih dari 5,000 Tartan

See all articles