Numerowanie wierszy (rows) tabeli lub div z pomocą CSS

Dzisiaj zajmiemy się tematyką numerowania (liczenia, punktowania) elementów HTML takich jak tabela lub <div>.

Numerowanie wierszy tabeli w CSS

Chodzi mi o efekt podobny do tego kiedy tworzymy numerowaną listę – numer zostanie nadany bez naszej ingerencji. Jednak tym razem numerować będziemy nie fragmenty tekstu a całe obiekty lub fragmenty. Dobrym przykładem tego będzie tabela:

Do czego może przydać się numerowanie?

Dobrym przykładem może tu być sytuacja jaka spotkała mnie jakiś czas temu. Zostałam w tedy poproszona o ponumerowanie wierszy tabeli – tak by docelowy użytkownik wiedział ile konkretnie elementów ona zawiera. Problem polegał na tym, że dane wprowadzone do tabeli pobierane były z bazy danych a ich ilość ulegała systematycznej zmianie. Ręczne numerowanie odpadało więc.

W teorii mogłam wprowadzić pewne zmiany w kodzie skryptu tworzącego tabelę dodając nową funkcję. W praktyce było to jednak raczej kiepskim pomysłem. Przede wszystkim dlatego, że kod nie był mój. W przypadku aktualizacji wtyczki modyfikacja została by usunięta.

Ostatecznie rozwiązaniem mojego problemu okazało się CSS.

Liczenie, automatyczne numerowanie wierszy tabeli

Liczenie wierszy (ang. rows) w tabeli w praktyce z pomocą CSS okazało się stosunkowo proste. Wymagało jednak drobnego wysiłku w postaci zapoznania się z funkcją – „counter”. Co ciekawe działa ona nie tylko na tabele. Policzyć można nią także np. elementy <div>.

W tym przypadku omawiamy jednak numerowanie wierszy tabeli. Więc oczywiście na samym początku będziemy potrzebowali tabeli posiadającej pewną ilość wierszy i kolumn.

Poniżej zamieściłam przykładową tabelkę formatowaną przez Bootstrap.

# First Last Handle
Mark Otto @mdo
Jacob Thornton @fat
Larry the Bird @twitter

Jak widać zostawiłam w niej jedną kolumnę pustą – to właśnie w tym miejscu planuje umieścić numerację wierszy. Dokładny kod CSS tej tabeli nie jest wam potrzebny – do tego momentu nie gra on bowiem dużej roli.

Interesować będzie nas za to będzie ten kod:

table {
counter-reset: rowNumber -1;
}

table tr {
counter-increment: rowNumber;
}

table tr td:first-child::before {
content: counter(rowNumber);
min-width: 1em;
margin-right: 0.5em;
}

Powyższy kod spowoduje pojawienie się w pierwszej kolumnie numeracji wierszy.

Jak widać na załączonym poniżej przykładzie numeracja zaczyna się od 2 wiersza. Pierwszy zawierający opis, etykiety jest pomijany.

Efekt ten uzyskałam dzięki właściwości:

counter-reset: rowNumber -1;

Analogicznie możecie pominąć również drugi lub trzeci.

Jak to wygląda w praktyce

Jak widać na załączonym przykładzie pierwszy do tej pory pusta kolumna została wypełniona.

Poniżej umieściłam inny przykład wykorzystania numerowania wierszy:

Numerowanie wierszy (rows) tabeli lub div z pomocą CSS
aurelia

Recent Posts

Mity o marce osobistej, które warto znać

Jak w przypadku wielu różnych tematów tak i w przypadku marki osobistej pojawiło się przez…

1 tydzień ago

Jakie zawody zastąpi AI? Czy mamy się czego bać?

Choć zabrzmi to może nieco dziwnie to wprowadzenie AI (sztucznej inteligencji) do naszego życia było…

2 tygodnie ago

Widmo Brockenu – co to jest?

Widmo Brockenu to dość rzadko spotykane zjawisko optyczne, najczęściej widywane w wysokich partiach gór. Można…

2 miesiące ago

Relikwie: jak zdobywano, sprzedawano i podrabiano święte przedmioty

Zacznę może od tego, że relikwia, relikwii nie równa. Wiem jeśli nie ma się pojęcia…

2 miesiące ago

Poznaj 6 powodów, dla których warto posiadać logo

Logo stanowi jeden z ważniejszych elementów tożsamości wizualnej praktycznie każdej firmy, marki czy projektu. Logo…

2 miesiące ago

Dlaczego firmy mylą markę osobistą z firmową

Budując własną markę osobistą lub chcąc ją zbudować trzeba liczyć się z wieloma wyzwaniami. Jednym…

2 miesiące ago