Autor Zpráva
Martin02
Profil
Zdravím,

Chci se zeptat, jestli když mám v css souboru na začátku @import url('typhography.css'); a pod tím nějaký kód, jaká je posloupnost provádění příkazů? Provede se nejdřív kód v souboru a až pak ten import nebo naopak?

Děkuji
juriad
Profil
Martin02:
To je irelevantní otázka. CSS se neprovádí, to jen definuje, jak se má co vykreslit.

Asi pro zjednodušení formátu platí:
The @import CSS at-rule allows to import style rules from other style sheets. These rules must precede all other types of rules, except @charset rules; as it is not a nested statement, it cannot be used inside conditional group at-rules.
Martin02
Profil
juriad:
Díky za odpověď. Neuvědomil jsem si, že když dám css třeba do <head>, tak se nejdřív celé "načte" a podle něj se až potom vykreslují elementy. Tudíž se posloupnost aplikování stylů neurčuje pořadím css příkaů, ale umístěním css kódu v html.
Bubák
Profil
Aby prohlížeč mohl stránku zobrazit podle deklarací v @import, musí navázat http spojení a pak začne stahovat a parsovat importovaný styl.
Mezi tím dál pokračuje načítání původního CSS souboru, prohlížeč nečeká, až bude @import dokončen.

Martin02:
Tudíž se posloupnost aplikování stylů neurčuje pořadím css příkaů, ale umístěním css kódu v html.
Moc nechápu, co tím myslíš, ale prohlížeč aplikuje styl hned, jakmile je to možní. Pokud bys měl jeden CSS soubor, tak prohlížeč ho načítá postupně, ale pokud je souborů se styly více, tak se situace komplikuje a záleží na mnoha okolnostech, jako zda jsou soubory nakešované, jak rychle se neváže to které http spojení...

Řešíš konkrétní problém, nebo se ptáš, abys problematiku lépe pochopil?
juriad
Profil
Ani tím umístěním v HTML, definice může být umístěna kdekoli. <link> může být jen v hlavičce (asi ze zvyku), ale <style> můžeš dát kamkoli a stejně se jeho definice týká celého html.

To ohledně načtení a následného vykreslování platí o JS. Script musí napřed stáhnout a spustit a pak až se může zabývat zbytkem stránky. Skript totiž může stránku změnit třeba pomocí document.write (viz Odkaz). Tomu lze ale trošku pomoci přidáním atributu async, který různé prohlížeče různě podporují.

Prohlížeč na načtení stylů nečeká, je dokonce navržen tak, aby dokázal stránku překreslit, kdykoli se nějaká CSS vlastnost změní. Zkus si třeba přidat ve vývojářských nástrojích pravidlo: * {display: inline}, které prohlížeči úplně změní chápání celé stránky.
Martin02
Profil
Bubák:
Řešíš konkrétní problém, nebo se ptáš, abys problematiku lépe pochopil?
Jenom jsem si prostě říkal, jak mít styly popořadě. Chtěl jsem, aby měla struktura přednost před fontama apod., ale zjišťuji, že to asi nejde takhle ovlivnit...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0