inset
Nemovitost v CSS je zkratka pro čtyři vložené vlastnosti, top
, right
, bottom
a left
v jednom prohlášení. Stejně jako samotné čtyři jednotlivé vlastnosti inset
nemá žádný vliv na ne umístěné (statické) prvky. Jinými slovy, prvek musí deklarovat explicitní position
hodnotu, než se mohou projevit vlastnosti vložky.
.box ( inset: 10px 20px 30px 40px; position: relative; )
inset
je původně definován ve specifikaci CSS Logical Properties and Values Level 1, která je v Draft editoru k 20. dubnu 2020.
Syntax
Jak jste možná shromáždili z výše uvedeného příkladu, inset
následuje stejná vícehodnotová syntaxe padding
a margin
. To znamená, že přijímá tolik jako čtyři hodnoty (prohlásit prolisy pro top
, right
, bottom
a left
) i třeba jen jedné hodnoty (deklarovat se rovnat offset pro všechny čtyři vlastnosti). A jako padding
a margin
hodnoty plynou ve směru hodinových ručiček, počínaje top
.
.element ( inset: 1em 2em 3em 0; /* top right bottom left */ inset: 10% 5% -10%; /* top left/right bottom */ inset: 0 10px; /* top/bottom left/right */ inset: 20px; /* all edges = 20px */ )
Předtím inset
bychom museli každou inset
dílčí vlastnost deklarovat samostatně, například takto:
.box ( position: absolute; top: 0; right: 0; bottom: 0; left: 0; )
Nyní to jednoduše můžeme udělat na jeden řádek CSS:
.box ( position: absolute; inset: 0; /* ? */ )
Hodnoty
inset
Vlastnost přijímá číselné hodnoty, stejně jako nahoře, vpravo, dole a vlevo. Tyto hodnoty mohou být libovolná platná délka CSS, jako je například px
, em
, rem
a %
, mezi ostatními.
Promluvme si o logických vlastnostech
Prostě zde poškrábáme povrch logických vlastností, protože skutečné zaměření je na inset
a jeho související podvlastnosti. Získejte důkladné hluboké ponoření do tohoto tématu v tomto článku Smashing Magazine od Rachel Andrew.
Existuje více inset
podvlastnosti než top
, right
, bottom
a left
, ale aby je pochopili, že to stojí za seznámení s logickými vlastnostmi a hodnotami.
Obsah lze zobrazit různými směry (tj. Režimy psaní), včetně zleva doprava, zprava doleva, shora dolů a zdola nahoru. Když mluvíme o „logických“ koncepcích, máme na mysli skutečný výchozí bod na základě směru psaní obsahu.
Představte si, že vytváříte web, který musí podporovat jazyky zleva doprava (LTR), jako je angličtina a španělština, a jazyky zprava doleva (RTL), jako je perština nebo arabština. Řekněme, že chcete přidat okraj mezi ikonu a text řádku vedle ní.
Přirozeně můžete sáhnout po margin-right
vlastnosti, která podporuje LTR, a pak přidat další sadu pravidel, která odstraní tento okraj a nahradí jej margin-left
pro RTL:
.icon ( margin-right: 1em; )
/* or .icon:dir(rtl) */ (dir="rtl") .icon ( margin-right: 0; margin-left: 1em; )
Toto je malá část stránky. Nyní si představte, že tímto způsobem vytvoříte velkou webovou stránku - to je spousta práce! Díky logickým vlastnostem je ale hračka tím, že pro nás zohledňuje režim psaní. Například můžeme přidat okraj na konec prvku, ať se to stane kdekoli:
.icon ( margin-inline-end: 1em; )
To máme na mysli při odkazování na logické vlastnosti - jsou relativní spíše k režimu psaní než k fyzickému směru. Podívejte se, jak logické vlastnosti jsou mnohem logičtější pro práci?
Vložit logické vlastnosti
Takže víte, co teď víte o logických vlastnostech, zde jsou čtyři další vložené dílčí vlastnosti:
Logická vlastnost | Ekvivalent vodorovného toku | Co to dělá |
---|---|---|
inset-block-start | top | Určuje posun počáteční hrany ve směru, který je kolmý na směr psaní. |
inset-block-end | bottom | Určuje odsazení pro koncovou hranu ve směru, který je kolmý ke směru psaní. |
inset-inline-start | left | Určuje posun počáteční hrany ve směru zápisu, který se mapuje na fyzické posunutí v závislosti na režimu psaní, směru a orientaci textu. |
inset-inline-end | right | Určuje odsazení pro koncovou hranu ve směru zápisu. |
Můžeme dokonce seskupit tyto čtyři dílčí vlastnosti do dvou dalších zkratkových vlastností:
Logická vlastnost | Zkratka pro | Co to dělá |
---|---|---|
inset-inline | inset-inline-start inset-inline-end | Přijme jednu hodnotu pro nastavení obou inset-inline-start a inset-inline-end .Přijímá také dvě hodnoty, kde první určuje inset-inline-start a druhá určuje inset-inline-end . |
inset-block | inset-block-start inset-block-end | Přijme jednu hodnotu pro nastavení inset-block-star t a inset-block-end .Přijímá také dvě hodnoty, kde první určuje inset-block-start a druhá určuje inset-block-end . |
Ukázka
Změňte režim zápisu a hodnoty vložených vlastností, abyste získali lepší představu o tom, jak fungují:
Pozor: inset
Vlastnost není logická
Ačkoli inset
je součástí specifikace Logické vlastnosti a hodnoty, nedefinuje logické bloky ani inline posuny. Místo toho definuje fyzické posuny, bez ohledu na režim psaní prvku, směr a orientaci textu. Jinými slovy, inset
je jen zkratka pro top
, right
, bottom
a left
.
Zde na GitHubu se diskutuje o použití některých klíčových slov, aby bylo možné tuto vlastnost používat také logicky.
Takže stále používáme fyzické posuny? Představte si, že chcete odznak nebo logo upevněné v horním a levém rohu stránky a bez ohledu na jazyk chcete, aby tam byly. V takovém případě nemůžete použít logické posuny a místo toho se budete muset uchýlit k fyzickým vlastnostem.
Podpora prohlížeče
Podpora pro inset
nemovitost je stále v raných fázích. V době psaní tohoto článku odhaduje caniuse globální podporu na pouhých 3,79%.
plocha počítače
internet Explorer | Okraj | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
Ne | Ne | 66+ | Ne | Ne | Ne |
mobilní, pohybliví
iOS Safari | Opera Mini | Prohlížeč Android | Chrome pro Android | Firefox Android |
---|---|---|---|---|
Ne | Ne | 68 | Ne | Ne |
Více informací
- Logické vlastnosti a hodnoty CSS úrovně 1 (specifikace, koncept editora)
- Porozumění logickým vlastnostem a hodnotám (Smashing Magazine)
- Logické vlastnosti CSS (triky CSS)