Autor Zpráva
Miloš
Profil
Při svých pokusech jsem narazil na rozdílné chování Opery × FF při zobrazení outline.

Outline se chová jako border – s tím rozdílem, že se nezapočítává do rozměrů prvku. Tolik teorie.
Když z takto ohraničeného prvku něco vysunu (ať absolutně vůči relativně pozicovanému rodiči, tak relativně vůči rodiči s position:static), Firefox posune outline orámování, takže se vysunutý prvek nachází stále uvnitř tohoto orámování.

Schválně porovnejte zobrazení http://kesolim.sweb.cz/TMP/outline.html v Opeře a ve FF.
Zajímalo by mě, který prohlížeč se chová správně, respektive jestli o tom specifikace vůbec mluví (se svou bídnou angličtinou nejsem s to vyčíst něco rozumného).
joe
Profil
Miloš
Osobně bych spíš hledal řešení, jak docílit toho aby to bylo ve všech prohlížečích stejně než zjišťovat, který prohlížeč to zobrazuje správně a který ne. Jinak nevím a ani jsem nikdy v životě outline nepoužil. Přijde mi to zbytečné.
Miloš
Profil
Ano, zbytečné je všechno, co neznáme. Proto dodnes někteří lidé používají IE 6 a není možné jim vysvětlit, že jsou paka.

Jistě by mě potěšilo řešení; přesto mě ale zajímá i odpověď na otázku, které zobrazení je správné.
joe
Profil
Omlouvám se za OT, už nebudu rušit a pak si také přečtu odpovědi, ale nedá mi to nereagovat na toto tvrzení:
Ano, zbytečné je všechno, co neznáme. Proto dodnes někteří lidé používají IE 6 a není možné jim vysvětlit, že jsou paka.

IE6 je daleko lepší prohlížeč pro uživatele, než FireFox. Používal jsem FF na prohlížení webů zhruba jeden měsíc a stačilo to, je to hrozný prohlížeč. Je neskutečně pomalý narozdíl od IE6 ;-)
Dero
Profil
Specifikace to nedefinuje.

Logické však pro mě je, že pokud vyjmeme pozicováním prvky z běžného toku dokumentu (případně kontextu rodiče, na který je outline definováno, pokud je tento již vyňat), outline toto nebude reflektovat a bude respektovat hranice boxu, které se takovým činem nemění. Mějme na paměti, že outline je pouhý border se dvěma podstatnými rozdíly:

1/ Neinteraguje s prvky na stránce a nezpůsobí její překres při změně.
2/ Je-li aplikován na řádkový element, pak je na začátcích a koncích řádků vždy uzavřený.

Takže já jsem v tomto pro Operu.
Chamurappi
Profil
Reaguji na Dera:
outline je pouhý border se dvěma podstatnými rozdíly
Vlastnost „outline“ zasahuje do uživatelského rozhraní (podobně jako třeba „cursor“), a proto se vymyká logice běžného nakládání s boxy. Zmíněné dva rozdíly jsou toho důsledkem a nadhozený třetí rozdíl v Mozille pravděpodobně také. Z pohledu uživatele může být hranice elementu jinde než ji vnímají procedury pro výpočet pozic boxů.

Reaguji na Miloše:
Specifikace říká, že outline nemusí být obdélníkový a že by měl objímat minimální obrys zapouzdřující všechny boxy elementu. Lze to chápat tak, jak to pochopili vývojáři Mozilly. Pro postup Mozilly hovoří trochu i fakt, že je na výrobu složitější než postup Opery.
Dero
Profil
Chamurappi: Rozhodně dobré připomínky.
Bubák
Profil
Specifikace říká, že outline nemusí být obdélníkový
V tom případě to dělá správně pouze Opera 9.50.
http://png.browsershots.org/3ddf0de40674fc644a3176dc06debfc8.png

Pro zajímavost, Opera 9.26 a Safari 3.1 zobrazují outline shodně.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0