Autor | Zpráva | ||
---|---|---|---|
petrfox Profil * |
#1 · Zasláno: 12. 5. 2010, 10:20:48
FF 3.6 zvětšuje výšku DIVu o 3px oproti výšce vnořeného obrázku, ale jen pro DOCTYPE Strict. Nevím ale, co je to za chybu zobrazování.
Kód: <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> </head> <body> </body> <script type="text/javascript" > father=document.createElement("div"); father.style.background='red'; father.style.position="absolute"; document.body.appendChild(father); dvImg=document.createElement("img"); //zdrojový soubor obrázku i1.jpg musí existovat dvImg.setAttribute('src','i1.jpg'); father.appendChild(dvImg); //zobrazuje compatMode ve stavove liste - jen kdyz je povoleno prohlizecem window.status=document.compatMode; </script> </html> Když před tento kód vložím definici striktního DOCTYPE, tedy: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> zobrazuje se pod obrázkem mezera 3px. Naopak při "přechodném" doctype: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> je zobrazení v pořádku. FF v obou případech hlásí režim CSS1Compat, bez DOCTYPE hlásí BackCompat - a v něm je zobrazení také bez nadbytečné mezery. Neznáte někdo nějaký hack? |
||
Chamurappi Profil |
#2 · Zasláno: 12. 5. 2010, 10:59:34
Reaguji na petrfoxe:
To je jedna z cca dvou věcí, v nichž se liší standardní a skoro-standardní režim Mozilly, viz Mozilla (ff) a převážně-standardní mód. „Neznáte někdo nějaký hack?“ Proč hack? Řešení je snadné, viz Mezera pod obrázkem. Nebo můžeš deklarovat ten první z uvedených <!doctypů> , stejně nemá žádný jiný praktický význam, než přepnutí režimu.
Mimochodem, proč nastavuješ zdroj obrázku přes setAttribute a ne přes prosté přiřazení do dvImg.src ?
Volat document.body.appendChild před donačtením <body> je dost nebezpečné.
|
||
petrfox Profil * |
#3 · Zasláno: 12. 5. 2010, 12:40:18
Chamurappi:
Dík. A to volání document.body.appendChild je jen tady v té ukázce - ve skutečnosti je to window.attachEvent... a window.addEventListener... |
||
Časová prodleva: 14 let
|
0