html okrągły obszar ograniczający wyjście poza niego elementu przykład html
border-radius: 50%
z overflow: hidden
na kontenerze. clip-path: circle()
(lub nawet maski SVG/CSS mask
) – daje to większą elastyczność i animowalność kształtu. Kluczowe punkty
width
i height
), aby border-radius: 50%
utworzył idealne koło. overflow: hidden
lub clip-path
fizycznie „przycina” wszystko, co wychodzi poza obrys koła. border-radius
; w nowoczesnych aplikacjach można bezpiecznie używać clip-path
. border-radius + overflow
(fallback-safe)<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>Okrągły kontener – border-radius</title>
<style>
.circle {
width: 220px;
height: 220px;
border-radius: 50%; /* kształt koła */
overflow: hidden; /* ukrywa nadmiar */
position: relative; /* kontekst dla pozycji absolutnych */
box-shadow: 0 4px 18px #0003;
}
.circle img { /* dowolna zawartość – tu obraz */
width: 100%;
height: 100%;
object-fit: cover; /* zachowuje proporcje, wypełniając koło */
}
</style>
</head>
<body>
<div class="circle">
<img src="https://picsum.photos/id/1059/400/400" alt="Przykładowy obraz">
</div>
</body>
</html>
Teoretyczne podstawy
border-radius: 50%
liczy się od wymiarów ramki, więc dla kwadratu r-d=50 % → promień=½ boku. overflow: hidden
aktywuje clipping na zrenderowanym obszarze boksa. Zastosowania praktyczne
• awatary, miniatury w galeriach, przycinki wideo (HTML5 <video>
w kontenerze), dynamiczne wskaźniki na pulpitach IoT itp.
clip-path: circle()
(większa swoboda)<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>Okrągły kontener – clip-path</title>
<style>
.clipped {
width: 240px;
height: 240px;
background: url("https://picsum.photos/id/1069/480") center/cover;
clip-path: circle(50% at 50% 50%); /* promień = 50% szer. elem., środek 50/50 */
transition: clip-path .4s;
}
.clipped:hover { /* pokazuje, że kształt można animować */
clip-path: circle(60% at 50% 50%);
}
</style>
</head>
<body>
<div class="clipped"></div>
</body>
</html>
Zalety
• dowolne kształty (polygon
, ellipse
, zewnętrzne ścieżki SVG), płynne animacje, brak wymogu kwadratu.
Wady
• brak wsparcia w IE 11; dla Safari < 15 czasem potrzebny prefiks -webkit-clip-path
.
clip-path
i mask-composite
we wszystkich evergreen-przeglądarkach; Edge 119+ i Chrome 117+ dodatkowo obsługują maski CSS Houdini (@property
, animacje niestandardowe). container-queries
ułatwiają responsywne skalowanie okrągłych masek bez JS. anchor positioning
(CSS Anchors) – pozwoli dynamicznie zakotwiczać zawartość wewnątrz klipu względem wskazanego punktu. Przyszłe kierunki
• Deklaratywne efekty „view-transition” (Chrome 111+) umożliwią płynne przejścia między stanami z różnymi clip-path
.
• WebGPU / WebGL-powered maskowanie dla wymagających wizualizacji w dashboardach IoT lub grach webowych.
overflow: hidden
działa jak fizyczna foremka do wykrawania ciastek; element-dziecko to ciasto – widzimy tylko to, co zmieściło się w foremce. object-fit: cover
lub background-size: cover
, aby obraz nie był rozciągany. position: absolute
, transform
) wciąż obowiązuje clipping – nic nie „wycieknie”. .clip {
-webkit-clip-path: circle(50%);
clip-path: circle(50%);
}
will-change: clip-path
lub contain: paint
– zapobiega to re-paiting całej strony. overflow
użyj pointer-events: none
na nadmiarowej części lub warstwy pseudo-elementu. clip-path
działają tylko z prefiksem; może to utrudnić animacje zależne od --radius
. border-radius
w procentach liczy się od wymiarów elementu; dla prostokątów otrzymasz elipsę, nie pełne koło. transform: translateZ
) maskowanie wciąż działa, ale może wymagać transform-style: preserve-3d
+ backface-visibility: hidden
. mask-image
+ gradieny konikalne (conic-gradient
) → miękkie, półprzezroczyste brzegowe przycinanie. <clipPath>
z animacją SMIL lub GSAP dla złożonych tras. shape-outside
– pozwala tekstowi „oblewać” zewnętrzną krawędź koła. Utworzenie okrągłego obszaru, który nie przepuszcza zawartości na zewnątrz, sprowadza się do:
border-radius: 50%
+ overflow: hidden
(gwarantowana zgodność, najmniej problemów) lub clip-path: circle()
(większa kontrola, animacje, brak dodatkowego elementu). Wybór metody zależy od wymagań dotyczących kompatybilności, elastyczności kształtu i planowanych efektów. Obie techniki są dziś w pełni wspierane w najpopularniejszych przeglądarkach, więc zachęcam do eksperymentów i łączenia ich z nowymi możliwościami CSS, takimi jak maski, Houdini czy view-transitions.