Generator CSS clip-path

Dalej

Za pomocą clip-path możesz wyciąć dowolny element w kształt wielokąta, tworząc kształtowe obrazy, asymetryczne sekcje hero lub dymki bez nakładek SVG. Ręczne wpisywanie współrzędnych polygon() to zaproszenie do błędów obliczeniowych. Ten generator tworzy poprawną deklarację clip-path dla czterech gotowych kształtów: trójkąta, rombu, trapezu i sześciokąta. Wybierz kształt, wygeneruj kod i skopiuj go.

Jak zbudować clip-path

  1. 1

    Wybierz kształt

    Wybierz jeden z czterech presetów: trójkąt, romb, trapez lub sześciokąt.

  2. 2

    Wygeneruj CSS

    Kliknij przycisk, a narzędzie zbuduje regułę `clip-path: polygon(...)` dla wybranego kształtu.

  3. 3

    Skopiuj regułę

    Skopiuj wynik i wklej go do arkusza stylów. Procenty sprawiają, że kształt jest responsywny względem rozmiaru elementu.

  4. 4

    Przeczytaj współrzędne

    Każda para liczb to jeden wierzchołek: pozycja x i y tego rogu jako procent ramki elementu.

  5. 5

    Zastosuj

    `clip-path` działa na każdym elemencie we wszystkich nowoczesnych przeglądarkach, a kształt skaluje się wraz z elementem.

Pięć funkcji kształtu

Funkcja Składnia Zastosowanie
inset() inset(10% 20% 10% 20% round 8px) Prostokątne przycięcie z wcięciami i opcjonalnie zaokrąglonymi narożnikami
circle() circle(50% at 50% 50%) Okrąg
ellipse() ellipse(40% 25% at 50% 50%) Elipsa
polygon() polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%) Dowolny wielokąt
path() path("M0 0 L100 0 L50 100 Z") Dane ścieżki SVG (ograniczona obsługa)

Typowe przycięcia wielokątne

/* Hexagon */
clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);

/* Rhombus */
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);

/* Chevron / arrow pointing right */
clip-path: polygon(0 0, 75% 0, 100% 50%, 75% 100%, 0 100%, 25% 50%);

/* Parallelogram */
clip-path: polygon(20% 0, 100% 0, 80% 100%, 0 100%);

/* Diagonal slice (modern hero section) */
clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);

Ukośne cięcie sekcji hero to prawdopodobnie najczęściej używany efekt ze wszystkich – nadaje sekcji nowoczesny, pochylony wygląd bez żadnego SVG.

Animowanie clip-path

clip-path animuje się, dopóki oba stany mają tę samą funkcję kształtu z tą samą liczbą punktów. Wielokąt o 4 wierzchołkach płynnie animuje się do innego wielokąta o 4 wierzchołkach; dodanie lub usunięcie wierzchołków przerywa interpolację.

.card { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
.card:hover { clip-path: polygon(0 5%, 100% 0, 100% 95%, 0 100%); }

Wykorzystaj to do efektów odsłaniania, subtelnych zniekształceń przy najechaniu kursorem lub przejść między stronami.

clip-path a overflow: hidden

overflow: hidden przycina do prostokąta border-box (który można zaokrąglić za pomocą border-radius). clip-path przycina do dowolnego zdefiniowanego przez Ciebie kształtu i przycina wszystko – w tym cienie i obrysy. Jeśli chcesz, aby cienie pozostały widoczne poza kształtem, clip-path nie jest tym, czego szukasz.

filter: drop-shadow() pozwala z powrotem dodać cień podążający za kształtem do elementów z clip-path, ale działa wolniej.

Wydajność

W nowoczesnych przeglądarkach clip-path jest akcelerowany przez GPU, więc animowane clip-path są płynne. Wyjątkiem są path() i bardzo złożone wielokąty (ponad 40 wierzchołków), które w niektórych przeglądarkach przechodzą na renderowanie przez CPU.

Dostępność

clip-path zmienia tylko to, co widoczne. Czytniki ekranu, fokus klawiatury i zdarzenia wskaźnika podążają za pełnym polem elementu, a nie za przyciętym kształtem. Jeśli obraz jest przycięty do kształtu gwiazdy, tekst alternatywny jest odczytywany normalnie. Jeśli przycisk jest przycięty do kształtu szewronu, celem kliknięcia jest cały prostokąt, a nie widoczny szewron – co może powodować przypadkowe kliknięcia w pozornie pustej przestrzeni.

W przypadku przycisków o nietypowych przyciętych kształtach ustaw szerokość i wysokość elementu ciasno, aby obszar kliknięcia możliwie dobrze pokrywał się z widocznym obszarem.

Najczęściej zadawane pytania

Wszystkie nowoczesne przeglądarki (Chrome, Firefox, Safari, Edge) obsługują polygon(), circle(), ellipse() i inset(). path() jest obsługiwane w Chrome 88+, Firefox 97+ oraz Safari 13.1+. IE nie obsługuje żadnej z tych funkcji, ale jego udział jest obecnie poniżej progu istotności dla większości witryn.

Ponieważ clip-path przycina cienie razem ze wszystkim innym. Użyj zamiast tego filter: drop-shadow() – podąża on za przyciętym kształtem i utrzymuje cień widocznym.

Tylko między tą samą funkcją kształtu o tej samej liczbie punktów. Wielokąt o 4 punktach animuje się do innego wielokąta o 4 punktach. Dodanie lub usunięcie punktów albo zmiana funkcji (z wielokąta na okrąg) przerywa interpolację.

Nie – zdarzenia wskaźnika nadal trafiają w cały prostokąt elementu. Przycisk w kształcie gwiazdy ma prostokątny obszar kliknięcia, obejmujący przezroczyste narożniki. Jeśli to istotne, rozważ pointer-events: none na ::before lub użyj elementów o ciasno dopasowanych wymiarach.

Powiązane narzędzia