Beberapa tahun yang lalu saya ingin membagikan satu fitur CSS yang tidak banyak diketahui — sebuah fitur bawaan list-item
counter untuk daftar yang dipesan. Tapi kemudian ada beberapa masalah browser yang mencegah kami menggunakannya sepenuhnya. Sekarang, mengingat sebagian besar bug tersebut telah diperbaiki, kami dapat mencoba mulai menggunakannya untuk daftar kami.
Kita
Saya tidak ingin membahas semua detail penggunaan CSS untuk penataan tetapi ingin memulai dari apa yang akan saya bicarakan.
Katakanlah kita ingin spidol daftar yang dipesan untuk memiliki tanda kurung setelah angka daripada titik:
ol > li
list-style-type: none;
ol::before
content: counter(list-item) ') ';
<ol>
<li>First item</li>
<li>And the second one</li>
</ol>
- barang pertama
- Dan yang kedua
Anda mungkin memperhatikan bahwa dalam contoh di atas hanya ada dua deklarasi — dan tidak ada tanda counter-reset
dan counter-increment
. Ini dimaksudkan dan berhasil!
topi Spesifikasi Katakanlah
Biarkan saya menyalin dari spesifikasi Daftar dan Penghitung CSS.
Selain penghitung yang ditentukan secara eksplisit yang ditulis oleh penulis dalam gaya mereka, item daftar secara otomatis menambah spesial
list-item
penghitung, yang digunakan saat membuat string penanda default pada item daftar[…]
Dalam semua hal lainnya,
list-item
penghitung berperilaku seperti penghitung lainnya dan dapat digunakan dan dimanipulasi oleh penulis untuk menyesuaikan gaya item daftar atau untuk tujuan lain.
Dalam spesifikasi, beberapa contoh memanfaatkan penghitung implisit semacam itu — menunjukkan bagaimana mereka akan bekerja dengan baik dengan berbagai atribut pada <ol>
dan <li>
seperti start
dan value
.
start
, value
dan reversed
atribut daftar HTML bscure: Tahukah kamu? Juga bukan aspek yang sangat terkenal, kali ini — kami memiliki cara asli untuk mengontrol nomor awal dari mana item akan dimulai, menyesuaikan nilai item tertentu, arah hitungan. Lihatlah contoh-contoh ini:
<ol start="42">
<li>A good start</li>
<li>And a continuation</li>
</ol>
- Awal yang bagus
- Dan lanjutannya
<ol>
<li>First item</li>
<li value="42">And then an adjusted one</li>
<li>The following would continue from the previous</li>
</ol>
- barang pertama
- Dan kemudian yang disesuaikan
- Berikut ini akan melanjutkan dari sebelumnya
<ol reversed>
<li>This item takes the last place</li>
<li>This item could do better</li>
<li>The item that wins this unnecessary competition</li>
</ol>
- Item ini mengambil tempat terakhir
- Item ini bisa lebih baik
- Item yang memenangkan kompetisi yang tidak perlu ini
Rapi, kan? Jika kita akan mencoba menerapkan perilaku yang sama dari awal menggunakan penghitung CSS kustom sepenuhnya, itu akan jauh lebih rumit daripada dua deklarasi di awal artikel, tetapi untungnya, kita dapat menggunakan penghitung implisit bawaan, dan untuk banyak kasus kita bisa berhenti menulis custom counter-reset
dan counter-increment
sama sekali.
Tapi ini tidak selalu seperti sekarang.
ld Bugs
Di Sini percobaan di mana saya pertama kali menguji semua ini — https://codepen.io/kizu/pen/QaKjmJ — Firefox tidak mendukung ini sama sekali, dan Chrome/Safari memang memiliki bug. Implementasi sempurna pada waktu itu ada di Edge!
Berikut adalah daftar masalah berakhir pada saat:
- Mozilla — dilaporkan oleh David Baron pada bulan April 2005, ditetapkan pada bulan Maret 2019.
- Webkit — dilaporkan oleh saya pada bulan Desember 2017, diperbaiki pada bulan Januari 2018 (wow, cepat).
- Chromium — dilaporkan oleh saya pada bulan Desember 2017, diperbaiki pada bulan Juli 2020.
Masalah yang paling serius adalah, tentu saja, tidak adanya implementasi di Firefox, tetapi masalah lain di Chromium dan Webkit bisa sedikit mengganggu ketika Anda mencoba mengganti tampilan penghitung dan kemudian menggunakan atribut HTML untuk mengontrolnya. .
ucapan terima kasih
Ketika pertama kali melakukan eksperimen saya dengan penghitung, saya tidak menemukan penyebutan penghitung item daftar implisit kecuali untuk . Sejak itu ada beberapa penyebutan tentang mereka:
Saya akan menjelaskan rendahnya cakupan fitur CSS ini pertama-tama karena ketidakhadirannya di Firefox, dan kemudian oleh beberapa masalah yang muncul saat itu.
::marker
dia Mengapa saya tidak menulis tentang ::marker
? Ada beberapa alasan. Yang utama cukup miskin dukungan browser saat ini (Mei 2022) — sementara Firefox mengimplementasikannya pada tahun 2019 dan Chrome pada tahun 2020, dan Safari hanya mendukung gaya color
dan font
membatasi apa yang bisa kita lakukan dengannya secara drastis.
Namun, hal-hal akan sama untuk ::marker
— itu juga memiliki akses ke implisit list-item
penghitung, jadi jika Anda setuju dengan cara Safari belum mendukung penggantian content
di atasnya, kita sudah dapat mulai menggunakannya, tetapi saya akan mengatakan, mengingat kami memiliki cara untuk mendukung semua browser termasuk Safari dengan menggunakan ::before
— sebaiknya kita melakukan ini.
aksesibilitas
Saya bukan ahli aksesibilitas, jadi saya tidak yakin apakah semuanya membaik, tetapi setidaknya dalam 2019
ada masalah di mana Safari/VoiceOver bisa kehilangan peran daftar, ini artikel bagus tentang itu — Daftar “Memperbaiki” oleh Scott O’Hara. Intinya adalah — meskipun umumnya tidak disarankan untuk menduplikasi peran elemen yang memilikinya secara intrinsik, kami mungkin masih ingin menambahkan role="list"
ke daftar kami jika kami sangat menatanya (dan jangan lupa untuk menguji berbagai hal, memastikan konten tersedia untuk semua orang).
Semoga dukungannya ::marker
akan menjadi sempurna suatu hari nanti, jadi tidak perlu mengesampingkan list-style
tetapi bahkan kita harus berhati-hati.
kata-kata inti
Jika Anda menggunakan gaya daftar kustom dalam kode Anda dan Anda telah menggunakan penghitung kustom — Anda mungkin berpikir untuk menghentikannya dan mulai menggunakan penghitung bawaan. list-item
. Terlebih lagi — jika Anda memiliki semacam konten buatan pengguna, dan ada kemungkinan akan ada daftar dengan start
, value
atau reversed
— ada kemungkinan besar itu tidak akan berfungsi dengan apa pun kecuali untuk list-item
menangkal. Jadi saya harap posting ini bermanfaat.
Dan, sekali lagi: membaca spesifikasi adalah salah satu cara terbaik untuk mempelajari kemampuan CSS, dan dimungkinkan untuk menemukan beberapa permata asli di sana. Dan jika hal-hal itu tidak jelas — ada kemungkinan mereka tidak diuji dengan baik dan Anda dapat menemukan bug yang dapat Anda laporkan, yang pada akhirnya membantu meningkatkan cara kami menulis CSS.
Diterbitkan di
dengan tanda: #Praktis #Penghitung CSS #CSS
Karena hanya mampu terkait kepada pihak yang menyediakan knowledge data togel hongkong saja yang bisa beroleh knowledge sgp lengkap. Lantas bersama sukar nya mengakses web site togel singapore pools pada negara +62. Maka alangkah baiknya berlangganan terhadap halaman ini untuk mendapatkan data keluaran sgp hari ini live tercepat cuma disini.