Autor Zpráva
hypot
Profil
Zdravím,
mám nikoli praktický, nýbrž teoretický dotaz.
Dejme tomu, že máme (blokový) prvek, který má přiřazenou (nějakou) animaci:
#element {animation: zvetsi 1s; ...}
@keyframes zvetsi {from {transform: scale(0)} to {transform: scale(1)}}
Jenže ten prvek je zároveň ve výchozím stavu skrytý:
#element {...; display: none}
Na skrytém prvku se animace logicky neprojeví. Co se však stane, když až po načtení stránky změníme prvku vlastnost display z none na block? Zkusil jsem to v několika různých prohlížečích a skoro ve všech po změně viditelnosti prvku animace proběhla. Setkal jsem se nicméně s názorem, že takové chování je nestandardní (neodpovídá specifikacím), z čehož ovšem potom vyplývá, že v daném případě prohlížeče standardy porušují a že kdyby je důsledně dodržovaly, animace by proběhnout nemohla. Mně uvedený způsob přiřazení animace nepřipadá nelogický (animace se prvku přiřadí teprve v okamžiku, kdy získá viditelnost (objeví se v dokumentu)), ale o jeho souladu se specifikacemi CSS si netroufám vyslovit autoritativní soud. Dokázal by mi na to někdo odpovědět?
Chamurappi
Profil
Reaguji na hypota:
Setkal jsem se nicméně s názorem, že takové chování je nestandardní (neodpovídá specifikacím)
Animace jsou v mnoha ohledech nedomyšlené a nedospecifikované – existuje jen pracovní návrh, na který se už čtyři roky nesáhlo. Nicméně ten říká, že popisované chování je správné:
Setting the display property to ‘none’ will terminate any running animation applied to the element and its descendants. If an element has a display of ‘none’, updating display to a value other than ‘none’ will start all animations applied to the element by the ‘animation-name’ property, as well as all animations applied to descendants with display other than ‘none’.

z čehož ovšem potom vyplývá, že v daném případě prohlížeče standardy porušují a že kdyby je důsledně dodržovaly, animace by proběhnout nemohla
Kdyby bylo chování rozšířených prohlížečů v rozporu se specifikací, tak se spíš upraví specifikace než prohlížeče. Ustálenou praxi už nejde dost dobře změnit – určitě jsou weby, které na to popsané chování spoléhají.
hypot
Profil
Díky. Že mě nenapadlo jít hned za kovářem.

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: