/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Skjule/vise et "tr" element vha style.disp~
Fra : Morten


Dato : 07-12-04 21:23


Hej.

Findes der en velfungerende (flere browsere) måde at skjule/vise en
række i et table på med style.display attributten? Layoutet spoleres i
nedenstående forsøg.. (i hvert fald i Firefox og Safari)

<html>
<body>
<head>
<script>
function go() {
document.getElementById("theBlock").style.display = "block";
}

function no() {
document.getElementById("theBlock").style.display = "none";
}
</script>
</head>
<body>

<a href="javascript:go();">Tænd</a> <a href="javascript:no();">Sluk</a>

<table border="1">
<tr>
<td>aaa</td>
<td>bbb</td>
</tr>
<tr id="theBlock" style="background:red">
<td>ccc</td>
<td>ddd</td>
</tr>
<tr>
<td>eee</td>
<td>fff</td>
</tr>
</table>


</body>
</html>




 
 
Stig Nygaard (07-12-2004)
Kommentar
Fra : Stig Nygaard


Dato : 07-12-04 22:34

Hej Morten


Morten wrote:
> Findes der en velfungerende (flere browsere) måde at skjule/vise en
> række i et table på med style.display attributten? Layoutet spoleres i
> nedenstående forsøg.. (i hvert fald i Firefox og Safari)

> document.getElementById("theBlock").style.display = "block";

> document.getElementById("theBlock").style.display = "none";

Prøv at bruge

document.getElementById("theBlock").style.display = "table-row";

når en række skal vises. Sådan skal det vist gøres ifølge W3C, da en
tabel-række reelt ikke er et block-element. Men jeg er ikke sikker på at
alle browsere understøtter denne display-type?

Du kan også prøve:

document.getElementById("theBlock").style.display = "";

og håbe at dette sætter den til default-værdien (hvad den så er) i
brugte browser.

Det sidste er nok et hack, men er muligvis måden at få det til at virke
(men du bør så nok ikke bruge en !doctype som sætter browserne i
Standards Compliant Mode).


Mvh. Stig
www.rockland.dk

Morten (08-12-2004)
Kommentar
Fra : Morten


Dato : 08-12-04 18:28


> Prøv at bruge
>
> document.getElementById("theBlock").style.display = "table-row";
>
> når en række skal vises. Sådan skal det vist gøres ifølge W3C, da en
> tabel-række reelt ikke er et block-element. Men jeg er ikke sikker på at
> alle browsere understøtter denne display-type?

IE gør ikke, men FF og Safari gør.

> document.getElementById("theBlock").style.display = "";
>
> og håbe at dette sætter den til default-værdien (hvad den så er) i
> brugte browser.

Det virker under IE. Excellent - tak.

Morten

Erik Ginnerskov (07-12-2004)
Kommentar
Fra : Erik Ginnerskov


Dato : 07-12-04 22:41

Morten wrote:
> Hej.
>
> Findes der en velfungerende (flere browsere) måde at skjule/vise en
> række i et table på med style.display attributten? Layoutet spoleres i
> nedenstående forsøg.. (i hvert fald i Firefox og Safari)

På denne side:

http://www.hjemmesideskolen.dk/html/elementer.asp?liststyle0.css

.... bruger jeg noget sådant (i en liste). det må også kunne bruges i en
tabel. Kig i kildekoden til siden og se hvordan det er lavet.

Klikker du på 'Vis non-strict elementer', udskiftes css og nogle skjulte
elementer vises.
Klikker du så på 'Skjul non-strict elementer', skiftes css tilbage og
elementerne skjules.

Kort fortalt er det lavet ved at udskifte css, hvis der klikkes på et
specifikt link. Teknikken forudsætter, at du kan køre serverside (asp eller
php).

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



Søg
Reklame
Statistik
Spørgsmål : 177519
Tips : 31968
Nyheder : 719565
Indlæg : 6408649
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste