Jens Gyldenkærne Clausen <jens@gyros.invalid> writes:
> To spørgsmål:
>
> A) Kan jeg lave en "removeStyle" eller "resetStyle" på de skjulte
> elementer? På den måde kunne man måske få IE til at vælge block og
> Opera/Mozilla til at vælge table-row.
Hvad mener du?
Hvis du kan genkende IE (hvilket ikke er saa svært igen), så kan
du selvfølgelig lave en funktion der bruger "block" hvis det er IE
og "table-row" hvis det ikke er. Det hjælper stadig ikke O6 og NS4.
> B) Hvis jeg først skjuler rækkerne ved body onload, vil det så
> kunne ses i browseren? Kan det evt. undgås ved serverside
> browsersnif?
De vil kunne ses indtil de bliver fjernet. Hvor længe det varer
afhænger af hvor lang tid det tager at læse resten af siden, så folk
med modem vil se det længere end folk med hurtigere forbindelser.
Det er *ikke* argument nok for at lade dem starte usynlige. Der er
en del mennesker der browser uden javascript, og derfor bør hele siden
være tilgængelig fra start.
Du kan bruge javascript tidligere end "onload" til at skjule elementer,
hvis det er for længe at vente, eller du kan bruge javascript til at
lave en "wrapper" der skjuler:
<script type="text/javscript">
document.write("<div id='wrapper1' style='display:none'>")
</script>
blah blah blah
<script type="text/javscript">
document.write("<\/div>");
</script>
Så er indholdet kun skjult hvis javascript er slået til.
Jeg kan ikke få tabellinjer til at forsvinde helt med
visibility:hidden. De reagerer ikke på "height='0px'" og selv
"line-height='0px'" fjerner dem ikke helt. Bummer!
Det virker sandsynligvis ikke i NS4 alligevel. Det er ikke alle
elementer man kan få fat i.
Det at Moz+Opera viser hele elementet i første søjle hvis du bruger
"display:block" er desværre korrekt opførsel. De ser et element i en
tabel der ikke er en "table-row" eller "table-cell", men "block", så
de pakker det pænt ind i "<tr><td>...</td></tr>".
Jeg tror det bedste gæt er browsersniffing. Det er IE, så det er nemt:
<script type="text/javascript">
var rowType = "table-row";
....
blah.style.display = rowType;
....
</script>
<!--[if IE]>
<script type="text/javascript">
rowType = "block";
</script>
<![end if]-->
Det, og så starte elementerne synlige.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
Art D'HTML: <URL:
http://www.infimum.dk/HTML/randomArtSplit.html>
'Faith without judgement merely degrades the spirit divine.'