Vi har byggt en komplett guide för att hjälpa dig att lära dig CSS, oavsett om du bara har börjat med grunderna eller vill utforska mer avancerad CSS.
I det här snabba tipset kommer vi att täcka de grundläggande grunderna för CSS-räknare; en användbar, men inte så känd CSS-funktion. När vi är färdiga bygger vår demo, tar vi en titt på några verkliga världsexemplar på webbplatser som utnyttjar CSS-räknare.
Som ett första steg, låt oss titta på layouten vi bygger:
Ingenting fancy, eller hur? Här är dock utmaningen: vi använder semantisk markering, så att frestelsen inte används onödigt div
och spänna
element för att bygga dessa motmarkörer.
Låt oss diskutera en ren och flexibel lösning!
Allt som krävs för att generera ovan nämnda layout är att definiera en beställd lista. Vid denna tidpunkt kanske du undrar om vi kunde ha använt ett annat element eller till och med en oorderad lista. Det korta svaret är "ja", men kom ihåg att en ordnad lista är det enda elementet som korrekt beskriver strukturen på vår sida.
Du kommer då sannolikt att fråga om det är möjligt att fullt ut anpassa utseendet på de beställda listnumren, bygga den önskade layouten på så sätt. Att utforma de beställda listnumren skulle vara väldigt knepigt. Med tanke på det finns det ett alternativ för webbläsare, så låt oss Dölj standardlistanummer och utnyttja CSS-räknare istället.
CSS-räknare tillåter oss att generera tal baserat på upprepade element och utforma dem i enlighet därmed. Tänk på CSS-räknare som variabler vars värden kan ökas. Låt oss titta på grundsyntaxen:
Skapa en ny räknareHär skapar vi en ny räknare på en beställd lista och definierar dess räckvidd. Vi använder counter-reset
fast egendom.
I det här andra diagrammet kan vi se att vi stylerar ::innan
pseudo-element av li
på vår lista.
innehåll
av vår ::innan
. Det är värt att nämna att genom att använda CSS-räknare med innehållsegenskapen kan vi sammanfoga (ansluta) de genererade numren med strängar.list-style-type
fast egendom.counter-inkrement
regel vi hänvisar igen till vår räknares namnBaserat på vad vi just diskuterat, här är vår markering:
Listobjekt
Några text här.
- <-- more list items here -->
Listobjekt
Några text här.
Och den relaterade CSS:
ol motåterställning: sektion; li list-style-type: none; fontstorlek: 1.5rem; vaddering: 30px; marginal-botten: 15px; bakgrund: # 0e0fee; färg: #fff; li :: före innehåll: räknare (sektion); mot-inkrement: sektion; display: inline-block; position: absolut; vänster: -75px; topp: 50%; transformera: translateY (-50%); vaddering: 12px; fontstorlek: 2rem; bredd: 25px; höjd: 25px; text-align: center; färg: # 000; gränsen: 50%; gräns: 3px fast # 000;
Detta ger oss resultatet enligt nedan:
Vid denna tidpunkt är det viktigt att notera att pseudoelement inte är 100% tillgängliga. För att testa detta gjorde jag ett snabbtest. Jag installerade NVDA och använde Chrome 50, Firefox 45 och Internet Explorer 11 för att förhandsgranska demoversidan.
Vad jag fann är att när Internet Explorer användes, meddelade inte skärmläsaren det genererade innehållet. Dessa dagar majoritet av skärmsläsare känner igen genererat innehåll av detta slag, men du borde vara medveten om de möjliga begränsningarna och bestämmer därför vilket innehåll som är tillräckligt säkert för att generera med hjälp av pseudoelement.
Nu när vi vet grunderna i CSS-räknare är vi redo att visa några exempel som visar deras potentiella användningsfall.
För det första används CSS-diskar i vanliga tidningar. För det mesta hittar du dem i sidfält:
Wall Street JournalHandelsblattCSS-räknare kan också användas inom sektioner som beskriver steg eller ger vägbeskrivningar. Här är bara ett exempel:
SpikeNodeI föregående avsnitt såg vi två dagstidningar som utnyttjar CSS-räknare. Låt oss nu se ytterligare två tidningar som använder uppblåst markup (om än med tillgängligt innehåll) istället för CSS-räknare:
Washington PostväktareI det här snabba tipset lärde vi oss hur vi kan använda CSS-räknare för att beställa ordnade listobjekt. Låt oss kort sammanfatta vad vi har täckt:
counter-reset
,counter-inkrement
) och en funktion (disken()
eller räknare ()
).innehåll
egendom, som endast är tillgänglig för pseudo-element.Har du någonsin använt CSS-räknare i dina projekt? Om ja, var noga med att dela med dig av ditt arbete!