


Komponen penarafan bintang CSS sahaja dan banyak lagi! (Bahagian 2)
Apr 22, 2025 am 10:23 AM Dalam artikel sebelumnya, kami membina komponen penarafan bintang CSS sahaja yang memanfaatkan topeng CSS, border-image
, dan fungsi attr()
yang dipertingkatkan. Kod yang dihasilkan menawarkan kebolehsuaian untuk mewujudkan variasi, seperti penilaian jantung dan kawalan kelantangan.
Susulan ini meneroka pendekatan yang lebih serba boleh menggunakan animasi yang didorong oleh tatal. Daripada kaedah border-image
, kami akan memanfaatkan kuasa animasi berasaskan skrol.
Inilah komponen penarafan bintang yang sama, dilaksanakan dengan teknik baru ini. Oleh kerana sifat eksperimennya, tontonan optimum memerlukan Chrome 115 (Safari dan Sokongan Firefox yang belum selesai).
Perhatikan perbezaan utama: Warna bintang secara dinamik mencerminkan kiraan pemilihan-prestasi yang mustahil dengan kaedah border-image
.
Untuk pemahaman yang lengkap, mengkaji artikel pertama sangat disyorkan, kerana bahagian ini membina konsep dan tekniknya.
Nota Penting: Pada masa penulisan, hanya Chrome 115 dan Edge 115 sepenuhnya menyokong ciri -ciri yang digunakan di sini. Sila gunakan salah satu penyemak imbas semasa mengikuti.
Penggunaan animasi yang didorong oleh tatal ke komponen penarafan bintang statik mungkin kelihatan tidak jelas. Penjelasan MDN untuk animasi yang didorong oleh tatal pada mulanya menambah kekeliruan:
Ia membolehkan anda menghidupkan nilai harta berdasarkan perkembangan sepanjang garis masa berasaskan skrol dan bukannya garis masa dokumen berasaskan masa lalai. Ini bermakna anda boleh menghidupkan elemen dengan menatal elemen yang boleh ditatal, bukan hanya dengan berlalunya masa.
Walau bagaimanapun, MDN menjelaskan bahawa dua jenis garis masa berasaskan skrol wujud: Tempoh Masa Kemajuan Tatal dan melihat garis masa kemajuan . Kami akan menggunakan yang terakhir:
Anda maju garis masa ini berdasarkan perubahan penglihatan elemen (dikenali sebagai subjek) di dalam Scroller. Keterlihatan subjek di dalam Scroller dijejaki sebagai peratusan kemajuan - secara lalai, garis masa adalah pada 0% apabila subjek terlebih dahulu dapat dilihat di satu tepi scroller, dan 100% apabila ia mencapai kelebihan.
CSS-Tricks Almanac menyediakan satu lagi definisi berguna mengenai view-timeline-name
.
Konsep ini menjadi lebih jelas dengan mempertimbangkan elemen ibu jari sebagai subjek dan elemen input sebagai Scroller . Pergerakan ibu jari di dalam kawasan input mengubah penglihatannya, mewujudkan kemajuan berasaskan peratusan yang boleh kita gunakan untuk gaya input. Pada asasnya, kami mereplikasi document.querySelector("input").value
dalam JavaScript, tetapi semata -mata dengan CSS!
Butiran pelaksanaan
Mari kita periksa kod:
@Property --Val { Sintaks: "<number> "; Warisan: Benar; nilai awal: 0; } input [type = "julat"] { --min: attr (jenis min (<number> )); --max: attr (jenis max (<number> )); Timeline-Scope: --val; Animasi: -Linear Linear kedua -duanya; Animasi-Timeline: --val; Animasi-Range: Entry 100% Exit 0%; Limpahan: Tersembunyi; } @keyframes --val { 0% {--val: var (-max)} 100% {--val: var (-min)} } input [type = "julat"] :: ibu jari { View-timeline:-Inlineval; }</number></number></number>
Ini mungkin kelihatan rumit, tetapi kerosakan line-by-line memudahkannya.
Subjek dan Scroller
Kami mentakrifkan subjek (ibu jari) menggunakan view-timeline
:
Propertinya CSS Shorthand
view-timeline
mendefinisikan garis masa kemajuan yang dinamakan, berkembang berdasarkan perubahan penglihatan elemen (subjek) dalam elemen scrollable (scroller).view-timeline
ditetapkan pada subjek.
Nama garis masa adalah --val
, dan paksi adalah inline
(mendatar).
Seterusnya, kami menentukan Scroller (input) dengan overflow: hidden
(atau overflow: auto
). Secara kritis, jangan lupa overflow
pada Scroller! Tanpa itu, penyemak imbas akan mentakrifkan Scroller, yang berpotensi membawa kepada hasil yang tidak dijangka.
Animasi
Animasi mengubah pembolehubah --val
antara nilai min
dan max
input, menggunakan fungsi attr()
yang dipertingkatkan. Animasi ini dikaitkan dengan garis masa paparan menggunakan animation-timeline
. Peraturan @property
mendaftarkan pembolehubah untuk animasi.
timeline-scope
juga penting. Dinamakan garis masa biasanya dilancarkan ke elemen dan keturunannya. Oleh kerana input adalah ibu bapa ibu jari, kami meluaskan skop menggunakan timeline-scope
.
Nilai kerangka utama terbalik ( min
pada 100%, max
pada 0%) kerana animasi bermula apabila ibu jari berada di sebelah kanan (nilai maksimum) dan berakhir di sebelah kiri (nilai min). Ini mencerminkan tingkah laku elemen menatal mendatar di mana subjek muncul dari kanan dan hilang ke kiri.
Julat Animasi
animation-range: entry 100% exit 0%;
sangat penting. Secara lalai, animasi bermula apabila subjek memasuki Scroller dari kanan dan berakhir apabila ia keluar dari kiri. Oleh kerana ibu jari tidak melimpah, kami menyesuaikan julat supaya animasi bermula apabila ibu jari berada di dalam Scroller dan berakhir apabila ia mula pergi.
Penggunaan berulang --val
merujuk kepada pemboleh ubah animasi, garis masa pandangan yang dinamakan, dan kerangka utama, semuanya berkongsi nama yang sama untuk kejelasan. Menggunakan nama yang berbeza akan meningkatkan kebolehbacaan.
Komponen penarafan bintang
Kerja teras melibatkan mendapatkan nilai input. Baki kod yang tersisa komponen, menarik dari artikel pertama:
input [type = "julat"] { Latar Belakang: Linear-Gradient (90deg, hsl (calc (30 4 * var (-val)) 100% 56%) calc (var (-val) * 100% / var (-max)), #7B7B7B 0 ); } input [type = "julat"] :: ibu jari { Kelegapan: 0; }
Jempol tersembunyi, dan warna kecerunan bintang -bintang berdasarkan pembolehubah --val
. Warna kecerunan juga berubah secara dinamik menggunakan hsl()
.
Demo lengkap (Chrome 115 disyorkan) mempamerkan fungsi, termasuk sokongan separuh bintang dengan menyesuaikan atribut input.
Imej sempadan vs animasi yang didorong oleh tatal
Di luar keserasian pelayar, pendekatan animasi yang didorong oleh tatal melepasi kaedah border-image
. Walaupun border-image
lebih mudah, ia tidak mempunyai fleksibiliti. Animasi yang didorong oleh tatal memberikan kawalan yang lebih besar, kerana nilai input diperoleh dan kemudian digunakan untuk gaya. Teknik nilai-nilai ini boleh digunakan semula walaupun tanpa gaya input langsung.
Contoh -contoh yang mempamerkan tooltips dan pelbagai slider pelbagai yang mengawal unsur -unsur halaman yang berbeza menunjukkan kepelbagaian pendekatan ini. Malah gelangsar pelbagai bergelombang menggambarkan kemungkinan gaya yang luas.
Kesimpulan
Siri dua bahagian ini menunjukkan komponen penarafan bintang minimum semasa meneroka attr()
, topeng CSS, dan animasi yang didorong oleh tatal. Walaupun sokongan penyemak imbas mengehadkan penggunaan pengeluaran segera, meneroka ciri -ciri ini memberikan pandangan yang berharga ke dalam keupayaan CSS masa depan.
Siri artikel
- Komponen penarafan bintang CSS sahaja dan banyak lagi! (Bahagian 1)
- Komponen penarafan bintang CSS sahaja dan banyak lagi! (Bahagian 2)
Atas ialah kandungan terperinci Komponen penarafan bintang CSS sahaja dan banyak lagi! (Bahagian 2). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Terdapat tiga cara untuk membuat pemutar pemuatan CSS: 1. Gunakan pemutar asas sempadan untuk mencapai animasi mudah melalui HTML dan CSS; 2. Gunakan pemutar tersuai pelbagai mata untuk mencapai kesan lompat melalui masa kelewatan yang berlainan; 3. Tambahkan pemutar dalam butang dan beralih kelas melalui JavaScript untuk memaparkan status pemuatan. Setiap pendekatan menekankan pentingnya butiran reka bentuk seperti warna, saiz, kebolehcapaian dan pengoptimuman prestasi untuk meningkatkan pengalaman pengguna.

Untuk menangani keserasian pelayar CSS dan isu awalan, anda perlu memahami perbezaan sokongan penyemak imbas dan menggunakan awalan vendor dengan munasabah. 1. Memahami masalah biasa seperti Flexbox dan sokongan grid, kedudukan: prestasi tidak sah, dan prestasi animasi adalah berbeza; 2. Periksa status sokongan ciri CANIUSE Ciri; 3. Gunakan dengan betul -webkit-, -moz-, -ms-, -o- dan awalan pengeluar lain; 4. Adalah disyorkan untuk menggunakan autoprefixer untuk menambah awalan secara automatik; 5. Pasang postcss dan konfigurasi penyemak imbas untuk menentukan penyemak imbas sasaran; 6. Secara automatik mengendalikan keserasian semasa pembinaan; 7. Ciri -ciri pengesanan moden boleh digunakan untuk projek lama; 8. Tidak perlu meneruskan konsistensi semua pelayar,

Themaindifferencesbetweendisplay: inline, block, andinline-blockinhtml/cssarelayoutbehavior, spaceusage, andstylingcontrol.1.inlineelementsflowwithtext, notstartonNewlines, abaikanwidth/height, andonyapplylylylylylinddding/

Menetapkan gaya pautan yang telah anda lawati dapat meningkatkan pengalaman pengguna, terutama di laman web yang berintensifkan kandungan untuk membantu pengguna menavigasi lebih baik. 1. Gunakan CSS: Kelas pseudo yang dilawati untuk menentukan gaya pautan yang dikunjungi, seperti perubahan warna; 2. Perhatikan bahawa penyemak imbas hanya membenarkan pengubahsuaian beberapa atribut disebabkan oleh sekatan privasi; 3. Pemilihan warna harus diselaraskan dengan gaya keseluruhan untuk mengelakkan ketangkasan; 4. Terminal mudah alih mungkin tidak memaparkan kesan ini, dan disyorkan untuk menggabungkannya dengan arahan visual lain seperti logo tambahan ikon.

Gunakan atribut clip-path CSS untuk menanam unsur-unsur ke dalam bentuk tersuai, seperti segitiga, takik bulat, poligon, dan lain-lain, tanpa bergantung pada gambar atau SVG. Kelebihannya termasuk: 1. Menyokong pelbagai bentuk asas seperti Circle, Ellipse, Polygon, dan lain -lain; 2. Pelarasan responsif dan boleh disesuaikan dengan terminal mudah alih; 3. Mudah untuk animasi, dan boleh digabungkan dengan hover atau javascript untuk mencapai kesan dinamik; 4. Ia tidak menjejaskan aliran susun atur, dan hanya tanaman kawasan paparan. Penggunaan umum adalah seperti laluan klip bulat: bulatan (50pxatcenter) dan triangle clip-path: polygon (50%0%, 100 0%, 0 0%). Notis

Untuk membuat imej responsif menggunakan CSS, ia boleh dicapai terutamanya melalui kaedah berikut: 1. Gunakan maksimum lebar: 100% dan ketinggian: auto untuk membolehkan imej menyesuaikan diri dengan lebar kontena sambil mengekalkan perkadaran; 2. Gunakan atribut SRCSET dan saiz HTML dengan bijak memuatkan sumber imej yang disesuaikan dengan skrin yang berbeza; 3. Gunakan objek-sesuai dan kedudukan objek untuk mengawal penanaman imej dan paparan fokus. Bersama -sama, kaedah ini memastikan bahawa imej dibentangkan dengan jelas dan indah pada peranti yang berbeza.

Penyemak imbas yang berbeza mempunyai perbezaan dalam parsing CSS, mengakibatkan kesan paparan yang tidak konsisten, terutamanya termasuk perbezaan gaya lalai, kaedah pengiraan model kotak, flexbox dan tahap sokongan susun atur grid, dan tingkah laku yang tidak konsisten bagi atribut CSS tertentu. 1. Pemprosesan gaya lalai tidak konsisten. Penyelesaiannya adalah menggunakan cssreset atau normalisasi.css untuk menyatukan gaya awal; 2. Kaedah pengiraan model kotak versi lama IE adalah berbeza. Adalah disyorkan untuk menggunakan kotak-kotak: kotak sempadan dengan cara yang bersatu; 3. Flexbox dan grid melakukan secara berbeza dalam kes kelebihan atau dalam versi lama. Lebih banyak ujian dan gunakan autoprefixer; 4. Beberapa tingkah laku atribut CSS tidak konsisten. CANIUSE mesti dirujuk dan diturunkan.

Pilihan unit CSS bergantung kepada keperluan reka bentuk dan keperluan responsif. 1.PX digunakan untuk saiz tetap, sesuai untuk kawalan yang tepat tetapi kekurangan keanjalan; 2.EM adalah unit relatif, yang mudah disebabkan oleh pengaruh unsur induk, sementara REM lebih stabil berdasarkan unsur akar dan sesuai untuk skala global; 3.VW/VH didasarkan pada saiz viewport, sesuai untuk reka bentuk yang responsif, tetapi perhatian harus dibayar kepada prestasi di bawah skrin yang melampau; 4. Apabila memilih, ia harus ditentukan berdasarkan sama ada pelarasan responsif, hubungan hierarki elemen dan ketergantungan viewport. Penggunaan yang munasabah boleh meningkatkan fleksibiliti dan penyelenggaraan susun atur.
