cari
Rumahhujung hadapan webtutorial cssButang hantu gula-gula css-ing

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>

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>

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>

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>

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
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
@KeyFrames vs CSS Transitions: Apakah perbezaannya?@KeyFrames vs CSS Transitions: Apakah perbezaannya?May 14, 2025 am 12:01 AM

@keyframesandcsstransitionsdifferincomplexity:@keyframesallowsfordetailedanimationseSseSeSs, whileCstransitionShandlesImplestateShanges.usecsstransitionsforhovereffectsLikeButtonColorchanges, dan@keyframesforintricateanimation.

Menggunakan halaman CMS untuk pengurusan kandungan tapak statikMenggunakan halaman CMS untuk pengurusan kandungan tapak statikMay 13, 2025 am 09:24 AM

Saya tahu, saya tahu: terdapat satu tan pilihan sistem pengurusan kandungan yang tersedia, dan sementara saya telah menguji beberapa, tidak ada yang benar -benar menjadi satu, y ' tahu? Model harga pelik, penyesuaian yang sukar, sesetengahnya akhirnya menjadi keseluruhan &

Panduan Terbaik untuk Menghubungkan Fail CSS di HTMLPanduan Terbaik untuk Menghubungkan Fail CSS di HTMLMay 13, 2025 am 12:02 AM

Menghubungkan fail CSS ke HTML boleh dicapai dengan menggunakan unsur -unsur dalam sebahagian HTML. 1) Gunakan tag untuk menghubungkan fail CSS tempatan. 2) Pelbagai fail CSS boleh dilaksanakan dengan menambahkan beberapa tag. 3) Fail CSS luaran menggunakan pautan URL mutlak, seperti. 4) Pastikan penggunaan laluan fail yang betul dan pesanan pemuatan fail CSS, dan mengoptimumkan prestasi boleh menggunakan preprocessor CSS untuk menggabungkan fail.

CSS Flexbox vs Grid: Kajian KomprehensifCSS Flexbox vs Grid: Kajian KomprehensifMay 12, 2025 am 12:01 AM

Memilih Flexbox atau Grid bergantung kepada keperluan susun atur: 1) Flexbox sesuai untuk susun atur satu dimensi, seperti bar navigasi; 2) Grid sesuai untuk susun atur dua dimensi, seperti susun atur majalah. Kedua -duanya boleh digunakan dalam projek untuk meningkatkan kesan susun atur.

Cara memasukkan fail CSS: Kaedah dan amalan terbaikCara memasukkan fail CSS: Kaedah dan amalan terbaikMay 11, 2025 am 12:02 AM

Cara terbaik untuk memasukkan fail CSS adalah menggunakan tag untuk memperkenalkan fail CSS luaran di bahagian HTML. 1. Gunakan tag untuk memperkenalkan fail CSS luaran, seperti. 2. Untuk pelarasan kecil, css sebaris boleh digunakan, tetapi harus digunakan dengan berhati -hati. 3. Projek besar boleh menggunakan preprocessors CSS seperti SASS atau kurang untuk mengimport fail CSS lain melalui @import. 4. Untuk prestasi, fail CSS harus digabungkan dan CDN harus digunakan, dan dimampatkan menggunakan alat seperti CSSNANO.

Flexbox vs Grid: Sekiranya saya belajar kedua -duanya?Flexbox vs Grid: Sekiranya saya belajar kedua -duanya?May 10, 2025 am 12:01 AM

Ya, youdyhouldlearnbothflexboxandgrid.1) flexboxisidealforone-dimensi, flexiblelayoutslikenavigasiMenus.2)

Mekanik Orbital (atau bagaimana saya mengoptimumkan animasi kerangka utama CSS)Mekanik Orbital (atau bagaimana saya mengoptimumkan animasi kerangka utama CSS)May 09, 2025 am 09:57 AM

Apa yang kelihatan seperti refactor kod anda sendiri? John Rhea memisahkan animasi CSS lama yang dia tulis dan berjalan melalui proses pemikiran mengoptimumkannya.

Animasi CSS: Adakah sukar untuk mencipta mereka?Animasi CSS: Adakah sukar untuk mencipta mereka?May 09, 2025 am 12:03 AM

Csanimationsarenotinherenthardbutrequirepracticeandundunderpanderofcsspropertiesandtimingfunctions.1) startwithsimpleanimationslikescalingabuttonhoverusingkeyframes.2)

See all articles

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!

Artikel Panas

Nordhold: Sistem Fusion, dijelaskan
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.