inset
Nehnuteľnosť v CSS je skratka pre štyri vložené vlastnosti, top
, right
, bottom
a left
v jednom vyhlásení. Rovnako ako samotné štyri jednotlivé vlastnosti, inset
nemá žiadny vplyv na neumiestnené (statické) prvky. Inými slovami, prvok musí deklarovať explicitnú position
hodnotu, aby sa vložené vlastnosti prejavili.
.box ( inset: 10px 20px 30px 40px; position: relative; )
inset
je pôvodne definované v špecifikácii úrovne logických vlastností a hodnôt CSS 1, ktorá je v koncepte editora od 20. apríla 2020.
Syntax
Ako ste sa už mohli dozvedieť z vyššie uvedeného príkladu, inset
postupuje sa rovnakou viachodnotovou syntaxou znakov padding
a margin
. To znamená, že prijíma toľko ako štyri hodnoty (vyhlásiť prelisy pre top
, right
, bottom
a left
) i napríklad len jednej hodnoty (deklarovať sa rovnať offset pre všetky štyri vlastnosti). A ako padding
a margin
, hodnoty tečú v smere hodinových ručičiek, počnúc od 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 */ )
Predtým inset
by sme museli každú inset
podvlastnosť deklarovať osobitne, napríklad takto:
.box ( position: absolute; top: 0; right: 0; bottom: 0; left: 0; )
Teraz to môžeme jednoducho urobiť na jeden riadok CSS:
.box ( position: absolute; inset: 0; /* ? */ )
Hodnoty
inset
Vlastnosť prijíma číselné hodnoty, rovnako ako hore, vpravo, dole a vľavo. Tieto hodnoty môžu byť ľubovoľná platná dĺžka CSS, ako je napríklad px
, em
, rem
a %
, medzi ostatnými.
Hovorme o logických vlastnostiach
Iba tu poškriabeme povrch logických vlastností, pretože sa sústreďujeme na inset
ich súvisiace podvlastnosti. Získajte dôkladný ponor do tejto témy v tomto článku Rachel Andrewovej v kategórii Smashing Magazine.
Existuje viac inset
podvlastnosti ako top
, right
, bottom
a left
, ale aby ich pochopili, že to stojí za zoznámenie s logickými vlastnosťami a hodnotami.
Obsah je možné zobraziť v rôznych smeroch (tj. Režimy písania), vrátane zľava doprava, sprava doľava, zhora nadol a zdola nahor. Keď hovoríme o „logických“ konceptoch, máme na mysli skutočne východiskový bod na základe smeru písania obsahu.
Predstavte si, že budujete web, ktorý musí podporovať jazyky zľava doprava (LTR), ako je angličtina a španielčina, aj jazyky sprava doľava (RTL), ako perzština alebo arabčina. Povedzme, že chcete pridať okraj medzi ikonu a riadkový text vedľa nej.


Prirodzene, môžete siahnuť po margin-right
vlastnosti, ktorá podporuje LTR, a potom pridať ďalšiu množinu pravidiel, ktorá túto hranicu odstráni a nahradí ju margin-left
pre RTL:
.icon ( margin-right: 1em; )
/* or .icon:dir(rtl) */ (dir="rtl") .icon ( margin-right: 0; margin-left: 1em; )
Toto je malá časť stránky. Teraz si predstavte, že by ste takýmto spôsobom vytvorili veľkú webovú stránku - to je veľa práce! Ale logické vlastnosti z toho robia hračku, keď vezmeme do úvahy režim písania. Napríklad môžeme pridať okraj na koniec prvku, nech už sa to stane kdekoľvek:
.icon ( margin-inline-end: 1em; )
To máme na mysli, keď hovoríme o logických vlastnostiach - sú relatívne skôr k režimu písania ako k fyzickému smeru. Pozrieť sa na to, ako logickejšie vlastnosti sú logické pre prácu?
Vložiť logické vlastnosti
Ak viete, čo teraz viete o logických vlastnostiach, sú tu ďalšie štyri vložené čiastkové vlastnosti:
Logické vlastníctvo | Ekvivalent vodorovného toku | Čo to robí |
---|---|---|
inset-block-start | top | Určuje odsadenie začiatočnej hrany v smere, ktorý je kolmý na smer písania. |
inset-block-end | bottom | Určuje odsadenie koncovej hrany v smere, ktorý je kolmý na smer písania. |
inset-inline-start | left | Určuje posun počiatočnej hrany v smere zápisu, ktorý sa mapuje na fyzické posunutie v závislosti od režimu písania prvku, smeru a orientácie textu. |
inset-inline-end | right | Určuje odsadenie koncovej hrany v smere zápisu. |
Tieto štyri čiastkové vlastnosti môžeme dokonca zoskupiť do dvoch ďalších stenografických vlastností:
Logické vlastníctvo | Skratka pre | Čo to robí |
---|---|---|
inset-inline | inset-inline-start inset-inline-end | Prijíma jednu hodnotu a nastavuje obidve inset-inline-start a inset-inline-end .Prijíma tiež dve hodnoty, kde prvá určuje inset-inline-start a druhá určuje inset-inline-end . |
inset-block | inset-block-start inset-block-end | Prijíma jednu hodnotu na nastavenie inset-block-star t a inset-block-end .Prijíma tiež dve hodnoty, kde prvá určuje inset-block-start a druhá určuje inset-block-end . |
Ukážka
Zmeňte režim zápisu a hodnoty vložených vlastností, aby ste získali lepšiu predstavu o ich fungovaní:
Upozornenie: Táto inset
vlastnosť nie je logická
Aj keď inset
je súčasťou špecifikácie Logické vlastnosti a hodnoty, nedefinuje logické bloky ani vložené posuny. Namiesto toho definuje fyzické posuny bez ohľadu na režim písania, smer a orientáciu textu prvku. Inými slovami, inset
je len skratka pre top
, right
, bottom
a left
.
Na serveri GitHub sa vedie diskusia o použití niektorých kľúčových slov, aby bolo možné túto vlastnosť používať aj logicky.
Takže stále používame fyzické vyrovnania? Predstavte si, že chcete mať odznak alebo logo pripevnené v hornom a ľavom rohu stránky a bez ohľadu na jazyk chcete, aby tam boli. V takom prípade nemôžete použiť logické vyrovnania a budete sa musieť uchýliť k fyzikálnym vlastnostiam.
Podpora prehľadávača
Podpora pre inset
nehnuteľnosť je stále v počiatočných fázach. V čase písania tohto článku odhaduje spoločnosť caniuse globálnu podporu na iba 3,79%.
Desktop
internet Explorer | Hrana | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
Nie | Nie | 66+ | Nie | Nie | Nie |
Mobilné
iOS Safari | Opera Mini | Prehliadač Android | Chrome pre Android | Firefox Android |
---|---|---|---|---|
Nie | Nie | 68 | Nie | Nie |
Viac informácií
- Logické vlastnosti a hodnoty CSS úrovne 1 (špecifikácia, redakčný koncept)
- Pochopenie logických vlastností a hodnôt (Smashing Magazine)
- Logické vlastnosti CSS (triky CSS)