Jak zrobić licznik w HTML?

Aby stworzyć licznik w HTML, można wykorzystać zarówno czysty HTML z pomocą CSS (liczniki CSS), jak i HTML połączony z JavaScriptem (dynamiczne liczniki czasu, odwiedzin, kliknięć itp.). W tym poradniku znajdziesz szczegółowe instrukcje oraz praktyczne przykłady do różnych zastosowań liczników.

Licznik przy użyciu CSS (liczniki CSS)

Automatyczna numeracja elementów bez <ol>

CSS pozwala na numerowanie dowolnych elementów, nie tylko listy. Przykładem jest numerowanie nagłówków, sekcji czy akapitów – przy użyciu właściwości counter-reset, counter-increment oraz pseudoelementu ::before.

Przykład: numerowanie nagłówków

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Licznik CSS – Przykład</title>
  <style>
    body { counter-reset: sekcja; }
    h2 { counter-increment: sekcja; }
    h2::before {
      content: counter(sekcja) ". ";
      font-weight: bold;
      color: #0074d9;
    }
  </style>
</head>
<body>
  <h2>Sekcja pierwsza</h2>
  <h2>Sekcja druga</h2>
  <h2>Sekcja trzecia</h2>
</body>
</html>

Efektem będzie automatyczne numerowanie sekcji bez użycia listy numerowanej.

Licznik zagnieżdżony (np. 1.1, 1.2.1)

CSS obsługuje także zagnieżdżone liczniki. To pozwala na generowanie wielopoziomowej numeracji, np. rozdziałów i podrozdziałów.

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Zagnieżdżone liczniki CSS</title>
  <style>
    body { counter-reset: rozdzial; }
    h1 {
      counter-increment: rozdzial;
      counter-reset: podrozdzial;
    }
    h1::before {
      content: counter(rozdzial) ". ";
      font-size: 120%;
      font-weight: bold;
    }
    h2 { counter-increment: podrozdzial; }
    h2::before {
      content: counter(rozdzial) "." counter(podrozdzial) " ";
      font-style: italic;
    }
  </style>
</head>
<body>
  <h1>Wstęp</h1>
  <h2>Cel poradnika</h2>
  <h2>Zakres</h2>
  <h1>Instalacja</h1>
  <h2>Pobieranie</h2>
  <h2>Konfiguracja</h2>
</body>
</html>

Efektem będą nagłówki z numeracją typu 1.1, 1.2, 2.1 itd.

Licznik w dół (np. odliczanie)

Licznik CSS można skonfigurować do odliczania w dół przez ustawienie startowej wartości i użycie ujemnej inkrementacji.

body { counter-reset: sekcja 5; }
h2 { counter-increment: sekcja -1; }
h2::before {
  content: counter(sekcja) ". ";
  color: crimson;
}

Dodając kilka nagłówków <h2>, będą one numerowane od 5 do 1.

Licznik dynamiczny z użyciem JavaScript

CSS świetnie sprawdza się do statycznej numeracji elementów na stronie. Gdy chcesz zbudować licznik dynamiczny – np. licznik czasu, odwiedzin, kliknięć, itp. – użyj JavaScriptu.

Licznik kliknięć

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Licznik kliknięć</title>
  <style>
    #counter {
      font-size: 2em;
      color: #28a745;
      margin-left: 10px;
    }
  </style>
</head>
<body>
  <button id="button">Kliknij mnie</button>
  <span id="counter">0</span>
<script>
let count = 0;
document.getElementById('button').onclick = function() {
  count++;
  document.getElementById('counter').innerText = count;
};
</script>
</body>
</html>

Wartość licznika zwiększa się o jeden przy każdym kliknięciu w przycisk.

Licznik czasu (odliczanie do zdarzenia)

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Licznik czasu JavaScript</title>
  <style>
    #timer {
      font-size: 2em;
      color: #e67e22;
    }
  </style>
</head>
<body>
  <div>
    Czas do końca: <span id="timer">10</span> sekund
  </div>
<script>
let timeLeft = 10;
const timerSpan = document.getElementById('timer');
const countdown = setInterval(function() {
  if (timeLeft > 0) {
    timeLeft--;
    timerSpan.textContent = timeLeft;
  } else {
    clearInterval(countdown);
    timerSpan.textContent = 'Koniec!';
  }
}, 1000);
</script>
</body>
</html>

Ten kod odlicza od 10 do 0, a na końcu wyświetla komunikat „Koniec!”.

Licznik odwiedzin strony (przykład lokalny)

Możesz przechowywać liczbę odwiedzin w LocalStorage przeglądarki.

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Licznik odwiedzin</title>
</head>
<body>
  <div> Liczba odwiedzin: <span id="visit-count"></span> </div>
<script>
let visits = localStorage.getItem('visitCount');
visits = visits ? parseInt(visits) + 1 : 1;
localStorage.setItem('visitCount', visits);
document.getElementById('visit-count').textContent = visits;
</script>
</body>
</html>

Każde odświeżenie strony zwiększa licznik o 1 (działa tylko w obrębie tej przeglądarki i urządzenia).

Zastosowania liczników w HTML i CSS/JS

  • Automatyczna numeracja sekcji, punktów instrukcji, podrozdziałów;
  • Licznik kliknięć w interaktywnych elementach (np. quizy, głosowania);
  • Odliczanie czasu (np. oferty limitowane, quizy z czasem, timer do premiery);
  • Licznik odwiedzin strony lub elementu;
  • Liczba dostępnych miejsc/produktów w sklepie internetowym;
  • Zamówienia: pokazanie kolejki, postępu itp..

Podsumowanie

Możliwości implementacji liczników w HTML są bardzo szerokie, zarówno przy pomocy CSS (prosta numeracja, nawet zagnieżdżona lub malejąca), jak i JavaScript (interaktywność, dynamiczne dane). Sposób realizacji zależy od potrzeb projektu – od prostych dekoracji, po zaawansowane narzędzia interaktywne.

Programista i twórca serwisu Creative Coding, absolwent Politechniki Warszawskiej (WEiTI). Od 10+ lat łączy front‑end, grafikę generatywną i narzędzia dla twórców; opublikował 120+ projektów i artykułów, prowadził warsztaty dla 2 000+ uczestników. Pracuje z JavaScriptem, Three.js, P5.js i GLSL, bada wydajność i dokumentuje procesy, tworząc praktyczne przewodniki dla osób łączących kod z obrazem, dźwiękiem i interakcją.
Zostaw komentarz

Komentarze

Brak komentarzy. Dlaczego nie rozpoczniesz dyskusji?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *