Home » Školení » Tvorba WWW – CSS » Viditelnost

Viditelnost

Tato vlastnost určuje, zda jsou vykresleny boxy generované prvkem, či nikoli. Neviditelné boxy ale stále ovlivňují vzhled dokumentu.


Normálně jsou všechny prvky viditelné, ale když se nastaví visibility: hidden, tak se prvek může vygumovat. Zůstane po něm prázdné místo. V tom se liší od display: none, protože co má display: none, po tom nezůstane ani to místo.

Visibility je méně náročná na výpočet, než display, proto se často používá v javascriptu pro mizení a zobrazování objektů (namísto náročnějšího display).

display

Vlastnost display určuje způsob formátování prvku. Možné hodnoty mají následující význam:

  • block: prvek je blokový
  • inline: prvek je řádkový
  • inline-block: prvek je blokový, může obsahovat další blokové prvky, avšak sám se chová jako řádkový (podobně jako třeba obrázky)
  • run-in: prvek run-in se chová dle kontextu jako blokový nebo řádkový
  • compact: prvek compact se chová dle kontextu jako blokový nebo řádkový (viz. dále)
  • list-item: prvek se formátuje jako položka uspořádaného či neuspořádaného seznamu
  • table: prvek se formátuje jako tabulka
  • table-cell: prvek se formátuje jako buňka tabulky
  • inline-table: prvek se formátuje jako tabulka, avšak chová se jako řádkový (podobně jako třeba obrázky)
  • none: prvek negeneruje vůbec žádný rám, chová se, jako by v dokumentu vůbec neexistoval

visibility

  • povolené hodnoty: visible | hidden | colapse | inherit
  • výchozí hodnota: inherit
  • lze použít: všechny prvky
  • dědí se: ne

Popis povolených hodnot:

  • visible: generovaný box je viditeln
  • hidden: generovaný box je neviditelný (zcela průhledný), ale stále ovlivňuje vzhled stránky (prvek ve stránce je, pouze není viditelný).
  • colapse: používá se jen u řádků a sloupců tabulek (viz pozdější kapitolu). U ostatních prvků má stejný význam jako hidden.

Praxe

Vlastnost visibility se používá téměř výhradně pro účely skriptování. Pokud totiž chci na stránce něco skrýt, téměř vždy je lepší použít display: none. Visibility se hodí jenom v tom případě, kdy je třeba vyhradit pro skrytý prvek místo nebo ho rychle přepočítávat — změny visibility se počítají rychleji než display, protože neovlivňují zbytek stránky.

Budu mít skrytý text, u něhož chci, aby se při přejetí myší (onmouseover) zviditelnil:

<div style=“visibility: hidden“ onmouseover=“this.style.visibility=’visible'“>skrytý text</div>

Následující zápis dělá to samé s vlastností display, ale s prohlížeči to mnohem víc cuká:

<div style=“display: none“ onmouseover=“this.style.display=’block'“>skrytý text</div>