margin-inline
Ustawia marginesy na początku i końcu wiersza. Logiczna wersja margin-left i margin-right, która rozumie kierunek pisma.
- Wartość domyślna
0- Dziedziczona
- Nie
- Animowalna
- tak, jako długość lub procent
- Dotyczy
- wszystkie elementy poza wewnętrznymi elementami tabel
- JavaScript
element.style.marginInline = "auto"
Przykład
#.toolbar {
display: flex;
align-items: center;
gap: 16px;
}
.toolbar .logout {
margin-inline-start: auto;
}<style>
.toolbar { padding: 8px 12px; border-radius: 12px; background: #18181b; }
.toolbar + .toolbar { margin-top: 10px; }
.toolbar a { color: inherit; text-decoration: none; }
.toolbar .logout { padding: 4px 12px; border-radius: 8px; background: #3f3f46; }
</style>
<nav class="toolbar">
<strong>CodeWorlds</strong>
<a href="#">Kursy</a>
<a href="#" class="logout">Wyloguj</a>
</nav>
<nav class="toolbar" dir="rtl">
<strong>CodeWorlds</strong>
<a href="#">Kursy</a>
<a href="#" class="logout">Wyloguj</a>
</nav>Jedna reguła obsługuje oba kierunki. W górnym pasku przycisk wylogowania trafia na prawo, a w dolnym, z dir="rtl", na lewo, bez żadnych dodatkowych stylów.
Definicja i zastosowanie
#Właściwość margin-inline to skrót dla margin-inline-start i margin-inline-end, czyli marginesów na początku i na końcu osi liniowej. Oś liniowa biegnie tak, jak płynie tekst w wierszu. W języku polskim oznacza to lewą i prawą stronę, więc margin-inline: 16px działa jak margin-left: 16px; margin-right: 16px.
Różnica wychodzi przy innym kierunku pisma. W języku arabskim czy hebrajskim (dir="rtl") wiersz zaczyna się po prawej, więc margines początkowy też przenosi się na prawo. W piśmie pionowym (writing-mode: vertical-rl) wiersze biegną z góry na dół i marginesy liniowe lądują na górze i na dole. Fizyczne margin-left zostaje po lewej bez względu na język.
Bliźniaczy skrót margin-block ustawia marginesy na osi blokowej, wzdłuż której układają się kolejne akapity. W zwykłym poziomym tekście to góra i dół, a składowe to margin-block-start i margin-block-end. W obu skrótach jedna wartość trafia na oba końce, a dwie oznaczają kolejno początek i koniec. Każda może być długością, procentem albo auto.
Przydatny szczegół: margin-inline: auto wyśrodkowuje blok o ustalonej szerokości i nie rusza marginesów górnego ani dolnego, w przeciwieństwie do margin: 0 auto. Marginesy na osi blokowej łączą się między sąsiadami tak samo jak górny i dolny.
Składnia
#margin-inline: <początek> <koniec>?;
margin-block: <początek> <koniec>?;Wartości
#<długość>
Jedna wartość: po 40px na początku i na końcu wiersza, czyli z lewej i z prawej. Paski tła pokazują marginesy.początek koniec
Pierwsza wartość to początek, druga koniec. W tekście pisanym od lewej margines pojawia się tylko po lewej stronie.- Przy ustalonej szerokości (tu
inline-size: 140px)autopo obu stronach wyśrodkowuje blok, a marginesy górny i dolny zostają bez zmian. tekst od prawej
Ta sama deklaracja80px 0, ale w kontenerze zdir="rtl". Wiersz zaczyna się po prawej, więc margines też przenosi się na prawo.pismo pionowe
W piśmie pionowym wiersz biegnie z góry na dół, więc margines początkowy ląduje na górze. Element stoi przy prawej krawędzi, bo wvertical-rlkolejne bloki układają się od prawej do lewej.oś blokowa
Skrót dla osi blokowej. W poziomym tekście dodaje po 24px nad elementem i pod nim.
Wartości w praktyce
#40px
.demo { margin-inline: 40px; }80px 0
.demo { margin-inline: 80px 0; }auto
inline-size: 140px) auto po obu stronach wyśrodkowuje blok, a marginesy górny i dolny zostają bez zmian..demo { inline-size: 140px; margin-inline: auto; }dir="rtl"
80px 0, ale w kontenerze z dir="rtl". Wiersz zaczyna się po prawej, więc margines też przenosi się na prawo..demo { margin-inline: 80px 0; }vertical-rl
vertical-rl kolejne bloki układają się od prawej do lewej..lane { writing-mode: vertical-rl; width: 100%; height: 150px; }
.demo { margin-inline: 40px 0; }margin-block: 24px
.demo { margin-block: 24px; }Obsługa przeglądarek
#Szeroko dostępne · od 2021 roku
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- Do wyśrodkowania kontenera strony wystarczy
margin-inline: auto. W odróżnieniu odmargin: 0 autonie kasuje marginesów górnego i dolnego ustawionych w innej regule. - W rzędzie flex
margin-inline-start: autoodpycha element na koniec wiersza, a w wersji od prawej do lewej automatycznie na drugą stronę. - Jeśli strona może kiedyś dostać wersję arabską lub hebrajską, pisz komponenty od razu na właściwościach logicznych. Wystarczy potem ustawić
dir="rtl"na elemencie<html>.
Powiązane hasła
#- marginUstawia zewnętrzny odstęp elementu od sąsiadów.
- padding-inlineUstawia odstęp wewnętrzny na początku i końcu wiersza. Logiczna wersja padding-left i padding-right, która rozumie kierunek pisma.
- inline-sizeUstawia rozmiar elementu wzdłuż wiersza tekstu. W poziomym piśmie to szerokość, a para block-size ustala wysokość.
- text-alignWyrównuje tekst w poziomie: do lewej, do prawej, do środka lub do obu krawędzi.
- floatPrzesuwa element do lewej lub prawej krawędzi, a tekst opływa go z drugiej strony.
Widzisz błąd albo brakuje przykładu? Napisz do nas.