Avatar billede rosenlund Nybegynder
07. juni 2007 - 22:56 Der er 3 kommentarer og
1 løsning

Problem med display:block; i FireFox men kun i DTD XHTML 1.0

Hejsa

Jeg har lavet et lille eksempel, som vier mit problem.
Nedenstående kode skal vise et element, når man klikker på et link.
Koden virker fint i IE og Opera, men ikke i Firefox.
Hvis jeg ændre DTD'en til HTML 4.0, virker det i alle browsere, men siden SKAL være XHTML 1.0
Jeg har googlet nettet, men ikke kunne finde nogen løsning.
Er der måske nogle af Jer der kan hjælpe?

På forhånd tak.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
<head>
    <title>Untitled</title>
</head>

<body>
<a href="#" onclick="test.style.display='block';">click</a>
<div id="test" style="width:100px;height:100px;border:1px solid red;display:none;">something</div>

</body>
</html>
Avatar billede keysersoze Ekspert
07. juni 2007 - 23:06 #1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
<head>
    <title>Untitled</title>
</head>

<body>
<a href="#" onclick="document.getElementById('test').style.display='block'; return false;">click</a>
<div id="test" style="width:100px;height:100px;border:1px solid red;display:none;">something</div>

</body>
</html>
Avatar billede rosenlund Nybegynder
07. juni 2007 - 23:15 #2
Tak Keysersoze
Det var nok de letteste 200 du har lavet længe?
Jeg havde faktisk haft getElementById på tidligere, men havde fjernet den (ved ikke lige hvorfor).
Det virker uden
return false;
Men bør jeg have den med alligevel?

MVH...
Avatar billede keysersoze Ekspert
07. juni 2007 - 23:40 #3
nja - tror nu godt jeg kan finde nogle spm med lige så mange point og samme sværhedsgrad :)

hvis nu dit show/hide layer ligger et godt stykke nede på en side og siden derfor er scrollet ned så vil du uden return false; sende brugeren op til toppen af siden igen. Derfor er den god at have med men ikke et must.
Avatar billede roenving Novice
08. juni 2007 - 13:02 #4
Det undrer mig meget, at du kan sige, at det virker i alle browsere med html4, for det er notorisk sådan, at M$ til IE4 'opfandt' document.all-collectionen, som omfatter samtlige elementer i et dokument, og da det samtidig var så grundlæggende et katalog, gjorde de den tilladt at udelade, da den navne-baseret brugte id'er, der som bekendt er unikke identifiers ...

Da denne collection for det første er meget besværlig at arbejde med i forhold til tilføjelse og fjernelse af elementer og for det andet er helt ulogisk, da den blander elementerne uden hensyntagen til den hierarkiske struktur et html-dokument har, er den selvfølgelig alldrig blevet kanoniseret af w3c, og derfor kun implementeret i een eneste browser ud over Internet Explorer ...

-- så det vil virke i IE4+ og Opera men ikke i en eneste anden browser !-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester