Przejdź do głównej treści
Grafika przedstawia ukryty obrazek

Grafika SVG w HTML – przewodnik z przykładami

Obraz ilustrujacy Grafika SVG w HTML  przewodnik z przykadami

Co to jest SVG?

SVG (Scalable Vector Graphics) to format grafiki wektorowej oparty na XML, który pozwala na definiowanie kształtów, linii i tekstu jako elementów kodu. Dzięki temu obrazy w formacie SVG mogą być skalowane bez utraty jakości, co czyni je idealnym rozwiązaniem dla stron internetowych.

Jak używać SVG w HTML?

Istnieje kilka sposobów na umieszczenie grafiki SVG w dokumencie HTML:

1. Wstawienie bezpośrednio w kodzie HTML

<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>

To podejście pozwala na łatwą manipulację grafiką za pomocą CSS i JavaScript.

2. Osadzanie pliku SVG jako obraz

<img src="grafika.svg" alt="Przykładowa grafika SVG">

Jest to prosty sposób na użycie plików SVG, ale nie pozwala na łatwą manipulację elementami grafiki.

3. Użycie SVG jako tła w CSS

.element {
  background-image: url('grafika.svg');
  width: 100px;
  height: 100px;
}

To rozwiązanie jest przydatne, jeśli SVG ma być używane jako dekoracyjne tło elementu.

Podstawowe elementy SVG

Oto lista podstawowych elementów SVG wraz z opisem i sposobem użycia w XML SVG:

  1. <svg>

Opis: Element kontenerowy definiujący przestrzeń rysowania SVG.

  1. <circle>

Opis: Rysuje okrąg. Atrybuty:

  • cx, cy – współrzędne środka
  • r – promień
  • fill – kolor wypełnienia
  • stroke – kolor obramowania

Przykład:

<circle cx="50" cy="50" r="40" fill="blue" stroke="black" stroke-width="2"/>
  1. <rect>

Opis: Rysuje prostokąt lub kwadrat. Atrybuty:

  • x, y – współrzędne lewego górnego rogu
  • width, height – szerokość i wysokość
  • rx, ry – zaokrąglenie rogów

Przykład:

<rect x="20" y="20" width="100" height="50" rx="10" ry="10" fill="red" stroke="black" stroke-width="2"/>
  1. <line>

Opis: Rysuje linię między dwoma punktami. Atrybuty:

  • x1, y1 – punkt początkowy
  • x2, y2 – punkt końcowy

Przykład:

<line x1="10" y1="10" x2="100" y2="100" stroke="black" stroke-width="2"/>
  1. <ellipse>

Opis: Rysuje elipsę. Atrybuty:

  • cx, cy – środek
  • rx, ry – promienie osi X i Y

Przykład:

<ellipse cx="100" cy="50" rx="50" ry="30" fill="green" stroke="black" stroke-width="2"/>
  1. <polygon>

Opis: Rysuje wielokąt (np. trójkąt). Atrybuty:

  • points – lista punktów (x,y)

Przykład:

<polygon points="50,15 90,85 10,85" fill="yellow" stroke="black" stroke-width="2"/>
  1. <polyline>

Opis: Rysuje linię łamaną składającą się z wielu segmentów. Atrybuty:

  • points – lista punktów

Przykład:

<polyline points="10,10 50,50 90,10" fill="none" stroke="black" stroke-width="2"/>
  1. <path>

Opis: Rysuje dowolny kształt za pomocą poleceń ścieżki. Atrybuty:

  • d – opis ścieżki (np. M, L, C, Z)

Przykład:

<path d="M10 10 H 90 V 90 H 10 Z" fill="none" stroke="black" stroke-width="2"/>
  1. <text>

Opis: Wyświetla tekst. Atrybuty:

  • x, y – pozycja tekstu
  • font-size, fill – stylizacja

Przykład:

<text x="50" y="50" font-size="20" fill="black">Witaj SVG!</text>
  1. <g>

Opis: Grupa elementów, umożliwia wspólne operacje (np. transformacje).

Przykład:

<g fill="blue" stroke="black" stroke-width="2">
    <circle cx="50" cy="50" r="40"/>
    <rect x="100" y="20" width="50" height="50"/>
</g>
  1. <defs>

Opis: Definiuje zasoby (np. gradienty, symbole) do późniejszego użycia.

Przykład:

<defs>
    <linearGradient id="gradient1">
        <stop offset="0%" stop-color="red"/>
        <stop offset="100%" stop-color="blue"/>
    </linearGradient>
</defs>
<rect x="10" y="10" width="100" height="100" fill="url(#gradient1)"/>
  1. <use>

Opis: Powiela element zdefiniowany w <defs>. Przykład:

<defs>
    <circle id="myCircle" cx="30" cy="30" r="20" fill="red"/>
</defs>
<use href="#myCircle" x="50" y="50"/>
  1. <symbol>

Opis: Definiuje symbole do wielokrotnego użytku.

Przykład:

<symbol id="star" viewBox="0 0 100 100">
    <polygon points="50,10 61,40 90,40 66,60 75,90 50,70 25,90 34,60 10,40 39,40"/>
</symbol>
<use href="#star" x="50" y="50" width="50" height="50"/>
  1. <clipPath>

Opis: Tworzy maskę przycinającą dla elementów SVG.

Przykład:

<clipPath id="clip1">
    <circle cx="50" cy="50" r="30"/>
</clipPath>
<rect x="10" y="10" width="100" height="100" fill="blue" clip-path="url(#clip1)"/>
  1. <mask>

Opis: Definiuje maskowanie elementów.

Przykład:

<mask id="mask1">
    <rect width="100" height="100" fill="white"/>
    <circle cx="50" cy="50" r="30" fill="black"/>
</mask>
<rect x="10" y="10" width="100" height="100" fill="red" mask="url(#mask1)"/>

To są podstawowe elementy SVG. Można je łączyć, animować i stylizować za pomocą CSS lub JavaScript.

Przykłady grafik SVG

language_json

Zalety SVG w porównaniu z PNG i WEBP

Zalety SVG:

  • Skalowalność – nie traci jakości przy zmianie rozmiaru.
  • Edytowalność – można łatwo modyfikować za pomocą CSS i JavaScript.
  • Lekka waga – dla prostych grafik, pliki SVG są często mniejsze niż PNG czy WEBP.
  • Interaktywność – obsługuje animacje i dynamiczne zmiany.
  • Lepsza czytelność na ekranach wysokiej rozdzielczości (Retina, 4K).

Wady SVG:

  • Nie nadaje się do zdjęć – nie przechowuje informacji o pikselach jak PNG czy WEBP.
  • Złożoność dla skomplikowanych grafik – duże pliki SVG mogą być trudne do zarządzania.
  • Kompatybilność – starsze przeglądarki mogą nie obsługiwać wszystkich funkcji SVG.

Kiedy używać SVG zamiast PNG lub WEBP?

  • Dla ikon, logo, prostych ilustracji i wykresów – SVG jest najlepszym wyborem.
  • Dla zdjęć i fotorealistycznych grafik – lepszym rozwiązaniem będzie WEBP lub PNG.
  • Gdy zależy na animacjach i interaktywności – SVG oferuje większe możliwości niż statyczne formaty.

Podsumowanie

SVG to potężne narzędzie w nowoczesnym web designie. Dzięki swoim zaletom jest często używane do tworzenia ikon, ilustracji i animacji. Wybór między SVG, PNG i WEBP zależy od rodzaju grafiki oraz wymagań projektu.

15 marca 2025 53

Kategorie

pozostałe

Tagi

grafika svg

Dziękujemy!
()
Wymiana doświadczeń

Masz podobne doświadczenia?

Chętnie poznam Twoją perspektywę i porozmawiam o tym temacie szerzej.

Napisz do mnie

Każda perspektywa może wnieść coś wartościowego do dyskusji.

Twoja prywatność i pliki cookies

  1. Ta strona internetowa wykorzystuje wyłącznie niezbędne pliki cookies, które są wymagane do jej prawidłowego działania – m.in. do poprawnego wyświetlania treści, zapamiętania podstawowych ustawień przeglądarki oraz zapewnienia stabilności serwisu.
  2. Nie stosuję plików cookies w celach marketingowych, reklamowych ani analitycznych.
  3. Strona ma charakter wyłącznie informacyjny i nie zawiera formularzy kontaktowych, rejestracyjnych ani zakupowych, przez które dane mogłyby być przesyłane na serwer.
  4. Nie zbieram danych osobowych podczas zwykłego korzystania z witryny.
  5. Serwis nie korzysta z certyfikatu SSL, jednak ze względu na informacyjny charakter strony nie jest wymagane przesyłanie poufnych danych. Zalecam jednak, aby nigdy nie wpisywać haseł ani danych osobowych na stronach bez szyfrowanego połączenia.
  6. Korzystając z tej strony, wyrażasz zgodę na używanie wyłącznie niezbędnych plików cookies.

Więcej informacji znajdziesz w mojej polityce prywatności.