Generator CSS clip-path
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
Wybierz kształt
Wybierz jeden z czterech presetów: trójkąt, romb, trapez lub sześciokąt.
-
2
Wygeneruj CSS
Kliknij przycisk, a narzędzie zbuduje regułę `clip-path: polygon(...)` dla wybranego kształtu.
-
3
Skopiuj regułę
Skopiuj wynik i wklej go do arkusza stylów. Procenty sprawiają, że kształt jest responsywny względem rozmiaru elementu.
-
4
Przeczytaj współrzędne
Każda para liczb to jeden wierzchołek: pozycja x i y tego rogu jako procent ramki elementu.
-
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
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Generator losowych liter
Generuj losowe litery A-Z. Wybierz liczbę, wielkie litery, małe litery lub zapis mieszany i użyj wyniku w grach, zadaniach lub lekcjach.
Konwerter ASCII na binarny
Konwertuj dowolny ciąg ASCII na reprezentację binarną. Każdy znak staje się ośmioma bitami, rozdzielonymi spacjami, gotowymi do wklejenia w ślad protokołu albo zadanie domowe.
Próbnik kolorów HEX
Wybierz lub wpisz kolor HEX i sprawdź RGB, HSL, przybliżone CMYK, luminancję względną oraz kontrast z bielą i czernią.