Les tables ne doivent pas être définies sur display: block
. Les lignes de table et les cellules ne devraient pas non plus. Ils ont différentes valeurs d'affichage. Mon conseil? Ne fais pas ça de cette façon. Utilisez une classe:
.hidden {
display: none;
}
et ajouter dynamiquement et le retirer de la table pour éviter les problèmes de réglage du type d'affichage à droite sur un élément que vous présentez.
Modifier: Pour clarifier le commentaire sur pourquoi faire de cette façon et ce qui se passe. Essayez ceci:
<table>
<tr>
<td>Cell 1</td>
<td style="display: block;">Cell 2</td>
</tr>
</table
Il va (ou devrait) bousiller votre disposition de table. Pourquoi parce qu'un <td>
élément, par défaut, a display: table-cell
pas block
. Les tables sont les mêmes. Ils ont display: table
.
La désactivation des attributs CSS est ... problématique.
Il est donc préférable d'utiliser des classes pour définir et annuler les attributs. Il est plus facile de changer (la classe réside dans un fichier CSS et n'est pas du code), évite des problèmes tels que redéfinir la valeur d'origine et fournit généralement une solution plus propre, surtout avec une librairie comme jQuery. En jQuery, vous pouvez faire:
$("table").toggleClass("hidden");
Terminé. Vous pouvez également utiliser addClass()
et removeClass()
si cela est plus approprié. Par exemple:
<input type="button" id="hide" value="Hide Table">
...
<table id="mytable">
...
et
$(function() {
$("#hide").click(function() {
if ($("#mytable").is(".hidden")) {
$("#hide").val("Hide Table");
$("#mytable").removeClass("hidden");
} else {
$("#hide").val("Show Table");
$("#mytable").addClass("hidden");
}
});
});
Et là, vous avez une solution robuste, concise et facile à comprendre (une fois que vous obtenez votre tête autour de la syntaxe jQuery, qui ne prend pas longue).
tripoter Javascript est directement si :-) 2002.
Y a-t-il du DOCTYPE dans cette page? Si non, pourquoi l'espace de noms xhtml? – AnthonyWJones
mise en page: fixe est une chose IE, pas standard – Greg
@RoBorg - je suis très heureux avec les implémentations non standard IE; j'utilise encore Mozilla :) :) @Anthony ... bon point –