Menu

Obramowanie w CSS: border, styl, kolor i border-radius

Właściwość border rysuje linię wokół paddingu elementu. Poznaj skrót border, wszystkie style obramowania, kolory i pojedyncze boki, zaokrąglone rogi przez border-radius oraz różnicę między obramowaniem a outline.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

Skrót border

border rysuje linię wokół elementu, między jego paddingiem a marginesem. Skrót przyjmuje trzy części w dowolnej kolejności: szerokość, styl i kolor.

CzęśćPełna właściwośćWartościDomyślnie
Szerokośćborder-width1px, 0.2em, thin, medium, thickmedium
Stylborder-stylesolid, dashed, dotted, double i innenone
Kolorborder-colorDowolny kolorcurrentColor (kolor tekstu)

Stylu nie można pominąć. Jego wartość domyślna to none, więc border: 2px #2563eb; nie rysuje zupełnie nic. Jeśli pominiesz kolor, obramowanie przyjmie kolor tekstu elementu.

Style obramowania

double potrzebuje co najmniej 3px, żeby pokazać dwie linie. groove, ridge, inset i outset cieniują kolor, żeby wyglądał trójwymiarowo, i nieco różnią się między przeglądarkami. hidden wygląda jak none; różnią się tylko w tabelach ze scalonymi obramowaniami, które omawia strona o obramowaniu tabeli w HTML.

Jeden bok naraz

Każdy bok ma własny skrót (border-top, border-right, border-bottom, border-left), a każda część ma pełne właściwości dla boków, takie jak border-top-color. Wersje logiczne, border-inline-start i border-block-end, podążają za kierunkiem tekstu:

border-color, border-width i border-style przyjmują od jednej do czterech wartości w tej samej kolejności zgodnej z ruchem wskazówek zegara co padding: góra, prawo, dół, lewo.

Zaokrąglone rogi z border-radius

border-radius zaokrągla rogi obramowania i tła, więc działa także na elementach bez obramowania.

WartośćWynik
border-radius: 8pxWszystkie rogi zaokrąglone o 8px
border-radius: 50%Koło na kwadratowym elemencie, elipsa na prostokącie
border-radius: 999pxPigułka: krótkie boki stają się pełnymi półkolami
border-radius: 8px 0Lewy górny i prawy dolny 8px, pozostałe dwa proste
border-top-left-radius: 12pxTylko jeden róg
border-radius: 50% / 25%Rogi eliptyczne: promień poziomy / promień pionowy

Dziecko z tłem może wystawać poza zaokrąglone rogi rodzica. overflow: hidden na rodzicu przycina je do krzywej.

Border a outline

Outline wygląda jak obramowanie, ale jest rysowany poza nim i nie zajmuje miejsca, więc jego dodanie niczego nie przesuwa. Dlatego przeglądarki używają go do pokazania fokusu.

BorderOutline
Zajmuje miejsceTak, wlicza się w rozmiar pudełkaNie
Osobno dla bokówTak (border-top, ...)Nie, zawsze dookoła
Uwzględnia border-radiusTakTak, w obecnych przeglądarkach
Odsunięcie od pudełkaNieTak, outline-offset
Typowe zastosowanieWyglądWskaźniki fokusu, debugowanie

Częste błędy

  • Brak stylu obramowania. border: 1px #111827; i border-color: red; nic nie rysują. Dodaj solid (albo inny styl).
  • Obramowanie, przez które układ skacze przy najechaniu. Zarezerwuj miejsce przezroczystym obramowaniem albo użyj outline lub box-shadow.
  • Pominięcie obramowania w szerokości. Element z width: 100% i obramowaniem wystaje z kontenera przy content-box. Użyj box-sizing: border-box.
  • border-radius z dzieckiem wystającym z rogów. Dodaj overflow: hidden do zaokrąglonego rodzica.
  • Usuwanie obrysu fokusu przez outline: none. Osoby korzystające z klawiatury go potrzebują; zmień jego wygląd zamiast go usuwać.

Najczęściej zadawane pytania

Jak dodać obramowanie w CSS?

Użyj skrótu z szerokością, stylem i kolorem: border: 2px solid #2563eb;. Najważniejszy jest styl: bez niego styl obramowania to none i nic nie zostanie narysowane.

Dlaczego moje obramowanie CSS się nie wyświetla?

Prawie zawsze dlatego, że nie ustawiono stylu obramowania. Samo border: 2px #2563eb; albo border-color: red; nic nie rysuje, bo domyślny border-style to none. Dodaj solid, dashed albo inny styl.

Jak zrobić zaokrąglone rogi w CSS?

Użyj border-radius: border-radius: 8px; zaokrągla wszystkie cztery rogi. border-radius: 50%; na kwadracie daje koło, a duża wartość, na przykład 999px, kształt pigułki. Zaokrągla też tło, nawet bez obramowania.

Jak dodać obramowanie tylko z jednej strony?

Użyj właściwości boku: border-bottom: 2px solid #e5e7eb; albo border-inline-start dla strony, od której zaczyna się tekst, co działa też w językach pisanych od prawej do lewej.

Czym różni się border od outline?

Obramowanie jest częścią pudełka: zajmuje miejsce i zmienia rozmiar elementu. Outline jest rysowany poza obramowaniem, nie zajmuje miejsca, nie da się go ustawić osobno dla boku i to jego przeglądarki używają do pokazania fokusu. Oba w obecnych przeglądarkach uwzględniają border-radius.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ