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ści | Domyślnie |
|---|---|---|---|
| Szerokość | border-width | 1px, 0.2em, thin, medium, thick | medium |
| Styl | border-style | solid, dashed, dotted, double i inne | none |
| Kolor | border-color | Dowolny kolor | currentColor (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: 8px | Wszystkie rogi zaokrąglone o 8px |
border-radius: 50% | Koło na kwadratowym elemencie, elipsa na prostokącie |
border-radius: 999px | Pigułka: krótkie boki stają się pełnymi półkolami |
border-radius: 8px 0 | Lewy górny i prawy dolny 8px, pozostałe dwa proste |
border-top-left-radius: 12px | Tylko 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.
| Border | Outline | |
|---|---|---|
| Zajmuje miejsce | Tak, wlicza się w rozmiar pudełka | Nie |
| Osobno dla boków | Tak (border-top, ...) | Nie, zawsze dookoła |
Uwzględnia border-radius | Tak | Tak, w obecnych przeglądarkach |
| Odsunięcie od pudełka | Nie | Tak, outline-offset |
| Typowe zastosowanie | Wygląd | Wskaźniki fokusu, debugowanie |
Częste błędy
- Brak stylu obramowania.
border: 1px #111827;iborder-color: red;nic nie rysują. Dodajsolid(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 przycontent-box. Użyjbox-sizing: border-box. border-radiusz dzieckiem wystającym z rogów. Dodajoverflow: hiddendo 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.