Každý prvek na webové stránce je obdélníkový rámeček. Vlastnost zobrazení v CSS určuje, jak se dané obdélníkové pole chová. Existuje jen několik hodnot, které se běžně používají:
div ( display: inline; /* Default of all elements, unless UA stylesheet overrides */ display: inline-block; /* Characteristics of block, but sits on a line */ display: block; /* UA stylesheet makes things like and block */ display: run-in; /* Not particularly well supported or common */ display: none; /* Hide */ )
Výchozí hodnota pro všechny prvky je vložená. Většina „šablon stylů uživatelských agentů“ (výchozí styly, které prohlížeč použije pro všechny weby) resetuje mnoho prvků na „blokování“. Pojďme si projít každou z nich a poté pojďme pokrýt některé další méně běžné hodnoty.
V souladu
Výchozí hodnota pro prvky. Myslet na prvky, jako jsou ,
nebo i jak balení textu v těchto prvků v rámci textový řetězec nepraská tok textu.
Vložený prvek přijme okraj a výplň, ale prvek stále sedí vložený, jak byste očekávali. Okraj a polstrování posunou ostatní prvky pouze vodorovně, nikoli svisle.
Vložený prvek nepřijme height
a width
. Prostě to bude ignorovat.
Vložený blok
Prvek nastavený na inline-block
je velmi podobný inline v tom, že bude nastaven inline s přirozeným tokem textu (na „účaří“). Rozdíl je v tom, že jste schopni nastavit width
a, height
což bude respektováno.
Blok
Řada prvků je nastavena block
pomocí šablony stylů UA prohlížeče. Bývají kontejnerové prvky, jako je
, a
- . Také text „bloky“ jako
- MDN
a
. Prvky na úrovni bloku nesedí inline, ale prolomí se kolem nich. Ve výchozím nastavení (bez nastavení šířky) zabírají co nejvíce vodorovného prostoru.
Běžet
Nejprve tato vlastnost ve Firefoxu nefunguje. Slovo je, že jeho specifikace není dostatečně dobře definována. Abychom tomu začali rozumět, je to, jako kdybyste chtěli, aby prvek záhlaví seděl přímo s textem pod ním. Plovoucí to nebude fungovat a ani nic jiného, protože nechcete, aby záhlaví bylo podřízeným textovým prvkem pod ním, chcete, aby to byl jeho vlastní nezávislý prvek. V „podpůrných“ prohlížečích je to takto:
Flexbox
display
Nemovitost je také používán pro nové fangled metod rozvržení jako flexboxu.
.header ( display: flex; )
Existují některé starší verze syntaxe flexboxu, proto si v tomto článku přečtěte syntaxi používání flexboxu s nejlepší podporou prohlížeče. Nezapomeňte si přečíst tohoto úplného průvodce Flexboxem.
Flow-Root
flow-root
Zobrazená hodnota vytvoří nový blok „formátování kontext“, ale jinak podobné block
. Nový BFC pomáhá s věcmi, jako je čištění plováků, což eliminuje potřebu hacků.
.group ( display: flow-root; )
Tato data podpory prohlížeče pocházejí z Caniuse, který obsahuje více podrobností. Číslo označuje, že prohlížeč podporuje tuto funkci v dané verzi a vyšší.
plocha počítače
Chrome | Firefox | TJ | Okraj | Safari |
---|---|---|---|---|
58 | 53 | Ne | 79 | 13 |
Mobilní / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 13.0-13.1 |
Mřížka
Rozložení mřížky bude také původně nastaveno vlastností zobrazení.
body ( display: grid; )
Tady je náš průvodce rozložením mřížky, který obsahuje graf podpory prohlížeče.
Žádný
Úplně odebere prvek ze stránky. Všimněte si, že zatímco je prvek stále v DOM, je vizuálně a jakýmkoli jiným myslitelným způsobem odstraněn (nemůžete na něj ani na jeho podřízené karty, čtečky obrazovky ho ignorují atd.).
Hodnoty tabulky
Existuje celá sada zobrazovaných hodnot, které přinutí jiné než tabulkové prvky, aby se chovaly jako tabulkové prvky, pokud to potřebujete. Je to vzácné, ale někdy vám to umožní být „sémantičtější“ s vaším kódem při využití jedinečných pozičních schopností tabulek.
div ( display: table; display: table-cell; display: table-column; display: table-colgroup; display: table-header-group; display: table-row-group; display: table-footer-group; display: table-row; display: table-caption; )
Chcete-li použít, stačí napodobit normální strukturu tabulky. Jednoduchý příklad:
Gross but sometimes useful.