Vi har bygget en komplett guide for å hjelpe deg med å lære CSS, enten du er bare i gang med det grunnleggende eller du vil utforske mer avansert CSS.
I dette raske tipset vil vi dekke grunnleggende om CSS-tellere; en nyttig, men likevel ikke så kjent CSS-funksjon. Når vi er ferdige med å bygge vår demo, tar vi en titt på noen virkelige eksempler på nettsteder som utnytter CSS-tellere.
Som et første skritt, la oss se på oppsettet vi skal bygge:
Ikke noe fancy, ikke sant? Her er utfordringen skjønt: Vi bruker semantisk markering, slik at fristelsen ikke bruker unødvendig div
og span
elementer for å bygge disse motmarkørene.
La oss diskutere en ren og fleksibel løsning!
Alt som trengs for å generere ovennevnte layout er å definere en bestilt liste. På dette tidspunktet kan du lure på om vi kunne ha brukt et annet element eller til og med en uordnet liste. Det korte svaret er "ja", men husk at en ordnet liste er det eneste elementet som nøyaktig beskriver strukturen på siden vår.
Deretter vil du sannsynligvis spørre om det er mulig å tilpasse utseendet til de bestilte listene, og bygge den ønskede utformingen på den måten. Styling av de bestilte listene vil være veldig vanskelig. Heldigvis skjønt, det er en alternativ cross-browser tilnærming, så la oss gjemme seg standardlistenummerene og utnytte CSS-tellere i stedet.
CSS tellere tillater oss å generere tall basert på gjentatte elementer, og stil dem tilsvarende. Tenk på CSS tellere som variabler hvis verdier kan økes. La oss se på grunnleggende syntaks:
Opprett en ny tellerHer oppretter vi en ny teller på en bestilt liste og definerer omfanget. Vi bruker teller for tilbakestilling
eiendom.
I dette andre diagrammet kan vi se at vi styler ::før
pseudo-element av li
på vår liste.
innhold
av vår ::før
. Det er verdt å nevne at ved å bruke CSS tellere med innholdsegenskapen, kan vi sammenkoble (bli med) de genererte tallene med strenger.list-style-type
eiendom.teller-inkrement
regel vi igjen referere til vår teller navnBasert på det vi nettopp har diskutert, er vår oppslag:
Listepost
Noen tekst her.
- <-- more list items here -->
Listepost
Noen tekst her.
Og den relaterte CSS:
ol mot tilbakestilling: seksjon; li liste-stil-type: none; fontstørrelse: 1.5rem; polstring: 30px; margin-bunn: 15px; bakgrunn: # 0e0fee; farge: #fff; li :: før innhold: teller (seksjon); counter-increment: section; display: inline-block; posisjon: absolutt; igjen: -75px; topp: 50%; transformere: translateY (-50%); polstring: 12px; skriftstørrelse: 2rem; bredde: 25px; høyde: 25px; tekst-align: center; farge: # 000; border-radius: 50%; grense: 3px solid # 000;
Dette gir oss resultatet som vist nedenfor:
På dette punktet er det viktig å merke seg at pseudoelementer ikke er 100% tilgjengelige. For å teste dette gjorde jeg en rask test. Jeg installerte NVDA og brukte Chrome 50, Firefox 45 og Internet Explorer 11 for å forhåndsvise demo siden.
Det jeg fant var at når Internet Explorer ble brukt, ble ikke skjermleseren kunngjort det genererte innholdet. Disse dager flertall av skjermlesere anerkjenner generert innhold av denne typen, men du bør være oppmerksom på mulige begrensninger, og derfor bestemme hvilket innhold som er trygt nok til å generere ved hjelp av pseudo-elementer.
Nå som vi kjenner grunnleggende om CSS tellere, er vi klare til å vise noen eksempler som viser deres potensielle brukstilfeller.
For det første er CSS-tellere ofte brukt i elektroniske aviser. Mesteparten av tiden finner du dem i sidefeltene:
Wall Street JournalHandelsblattCSS tellere kan også brukes i seksjoner som beskriver trinn, eller gi retninger. Her er bare et slikt eksempel:
SpikeNodeI den forrige delen så vi to elektroniske aviser som utnytter CSS-tellere. Nå, la oss se ytterligere to aviser som bruker oppblåst markering (om enn med tilgjengelig innhold) i stedet for CSS-tellere:
Washington PostGuardianI dette raske tipset lærte vi hvordan vi kan bruke CSS-tellere til å sortere bestilte listeposter. La oss kort oppsummere hva vi har dekket:
teller for tilbakestilling
,teller-inkrement
) og en funksjon (disk()
eller tellere ()
).innhold
eiendom, som kun er tilgjengelig for pseudo-elementer.Har du noen gang brukt CSS tellere i prosjektene dine? Hvis ja, vær sikker på å dele med deg ditt arbeid!