9.13. Właściwość zbiorcza border
Wprowadzenie: Ustawianie obramowania w jednej linii
Podobnie jak w przypadku tła (background
), CSS oferuje również właściwość zbiorczą (shorthand) dla obramowania: border
. Pozwala ona ustawić **szerokość, styl i kolor** obramowania dla **wszystkich czterech krawędzi jednocześnie** w jednej, zwięzłej deklaracji.
Jest to najczęściej stosowany sposób definiowania prostego, jednolitego obramowania.
Składnia właściwości border
Właściwość border
przyjmuje od jednej do trzech wartości, które określają:
border-width
(opcjonalne, domyślniemedium
)border-style
(wymagane, aby obramowanie było widoczne)border-color
(opcjonalne, domyślniecurrentColor
)
Kolejność tych trzech wartości **nie ma znaczenia**. Przeglądarka sama rozpozna, która wartość odpowiada szerokości, stylowi, a która kolorowi.
/* Przykłady użycia shorthandu border */
/* Najprostszy przypadek: styl (szerokość=medium, kolor=currentColor) */
.element1 {
border: solid;
color: green; /* Obramowanie będzie zielone */
}
/* Styl i kolor (szerokość=medium) */
.element2 {
border: dashed blue;
}
/* Styl i szerokość (kolor=currentColor) */
.element3 {
border: dotted 5px;
color: orange; /* Obramowanie będzie pomarańczowe */
}
/* Szerokość, styl i kolor */
.element4 {
border: 2px solid #333; /* Najczęstszy zapis */
}
/* Inna kolejność - działa tak samo */
.element5 {
border: red thick double;
}
Ważne: Właściwość border
ustawia te same wartości dla **wszystkich czterech krawędzi**. Nie można za jej pomocą ustawić różnych stylów, szerokości czy kolorów dla poszczególnych krawędzi (do tego służą indywidualne właściwości lub shorthandy dla poszczególnych krawędzi, np. border-top
).
Resetowanie wartości
Podobnie jak inne właściwości zbiorcze, użycie border
resetuje do wartości domyślnych te właściwości składowe (border-width
, border-style
, border-color
), które nie zostały jawnie podane w shorthandzie.
Na przykład, jeśli wcześniej ustawiłeś border: 5px solid red;
, a następnie użyjesz border: dashed;
, to szerokość zostanie zresetowana do medium
, a kolor do currentColor
.
Jeśli chcesz zmienić tylko jeden aspekt obramowania (np. tylko kolor), użyj odpowiedniej indywidualnej właściwości (border-color
).
Shorthandy dla poszczególnych krawędzi
Oprócz głównego shorthandu border
, istnieją również właściwości zbiorcze dla każdej z krawędzi:
border-top
border-right
border-bottom
border-left
Każda z nich przyjmuje od jednej do trzech wartości (szerokość, styl, kolor) w dowolnej kolejności, ale dotyczą one **tylko tej konkretnej krawędzi**.
.specific-borders {
/* Ustawienie tylko górnego obramowania */
border-top: 3px solid blue;
/* Ustawienie tylko dolnego obramowania (inny styl) */
border-bottom: 1px dashed gray;
/* Usunięcie lewego i prawego obramowania (jeśli były wcześniej) */
border-left: none;
border-right: none;
padding: 20px;
}
Używanie tych shorthandów jest często wygodniejsze niż stosowanie indywidualnych właściwości typu border-top-width
, border-top-style
, border-top-color
, gdy chcemy zdefiniować całe obramowanie dla jednej krawędzi.
Zadania praktyczne
Zadanie 1 (z rozwiązaniem)
Użyj właściwości zbiorczej border
, aby nadać elementowi div
ciągłe, czarne obramowanie o grubości 1px.
Rozwiązanie:
HTML:
<div class="simple-border">Proste obramowanie</div>
CSS:
.simple-border {
padding: 15px;
border: 1px solid black; /* Kluczowa właściwość */
}
Efekt: Element będzie miał cienkie (1px), ciągłe, czarne obramowanie ze wszystkich stron.
Zadanie 2 (do samodzielnego wykonania)
Użyj właściwości zbiorczej border
, aby nadać elementowi div
kropkowane, czerwone obramowanie (użyj domyślnej szerokości medium
).
Zadanie 3 (do samodzielnego wykonania)
Użyj shorthandów dla poszczególnych krawędzi (border-top
, border-bottom
), aby nadać elementowi div
tylko górne i dolne obramowanie (np. 2px solid gray
), bez obramowania po bokach.
FAQ - Najczęściej zadawane pytania
Co jeśli podam tylko styl w border
?
Jeśli podasz tylko styl, np. border: dashed;
, przeglądarka użyje domyślnych wartości dla szerokości (medium
) i koloru (currentColor
). Obramowanie będzie widoczne.
Czy border: none;
jest równoważne border-style: none;
?
Tak, oba zapisy skutecznie usuwają obramowanie. border: none;
jest shorthandem, który ustawia border-style
na none
, a pozostałe właściwości (szerokość, kolor) na ich wartości domyślne (co przy border-style: none
nie ma znaczenia).
Czy mogę użyć border
do ustawienia różnych stylów dla różnych krawędzi?
Nie, główny shorthand border
ustawia te same wartości (szerokość, styl, kolor) dla wszystkich czterech krawędzi. Aby ustawić różne style/szerokości/kolory dla poszczególnych krawędzi, musisz użyć indywidualnych właściwości (np. border-top-style
, border-bottom-color
) lub shorthandów dla krawędzi (border-top
, border-left
itp.).
Czy shorthand border
resetuje border-radius
?
Nie. Właściwość border-radius
(do zaokrąglania rogów) jest oddzielną właściwością i nie jest częścią shorthandu border
. Użycie border
nie wpływa na ustawiony wcześniej border-radius
.