Posez votre question Signaler

[CSS] display: {block|none}; TABLE sous IE??? [Résolu]

MoI - Dernière réponse le 20 nov. 2008 à 09:42
Voilà je vouderais savoir comment faire pour faire disparaitre un tableau sous IE
<table id="mytable" style="display: block;">
<tr>
<td>:) test</td>
</tr>
</table>
<script>
document.getElementById('mytable').style.display = 'none';
</script>

Marche sous FF mais pas sous IE... y'a pas une méthode?
si non, comment faire pour que IE le face disparaitre?

je vous remerci d'avance....
Lire la suite 

[CSS] display: {block|none}; TABLE sous IE »

8 réponses
Réponse
+6
moins plus
http://www.w3schools.com/css/pr_class_display.asp

display = "table" pour les tableaux, cher monsieur thifoolish, gardien de la morale
Ajouter un commentaire
Réponse
+2
moins plus
Entre autre la balise <script> bonne remarque de SpikyGolden, à moins qu'il n'ait déjà précisé
dans l'entête html de sa page web le langage de script par défaut.


Personnellement je ferais une fonction javascript que j'appellerais seulement si besoin,
avec des gestionnaires d'évènements (onclick / onblur / onchange etc...)

Pour la documentation javascript: http://fr.selfhtml.org/javascript/intro.htm


Pour le côté CSS, côté compatibilité avec les anciens navigateurs web, un peu de respect
à ce niveau:
mettre
style="display:block;"
au lieu de
style="display: block;"

et puis tant qu'on y est :
NE PLUS METTRE D'ATTRIBUT style="" DANS VOS BALISES HTML, merci.
Préférez utiliser les CSS pour la MISE EN FORME DE VOS PAGES HTML
class=""
et dans un fichier CSS nommé par exemple "mesStyles.css":

.maPremiereClasseCssQuiMetEnGras {
font-weight:bold;
}

/* un exemple */
a#lienQuiAfficheMyTable {
color:white;
background-color:black;
text-decoration:none;
}

a#lienQuiAfficheMyTable table#mytable {
display:none;
}

a#lienQuiAfficheMyTable:hover {
color:black;
background-color:red;
text-decoration:underline;
}

a#lienQuiAfficheMyTable:hover table#mytable {
display:block;
}

Il faut encapsuler le tableau dans le lien hypertexte, comme le code CSS ci-dessus l'exige:
<a href="" title="" id="lienQuiAfficheMyTable">
<table id="mytable ">
<tr>
<td>
</td>
</tr>
</table>
</a>

Pas testé, pas garanti, mais ça devrait marcher correctement sur tous les navigateurs web.


Pour les problèmes avec IE... IE est un problème à lui seul...
Regardez les hacks et les pseudos-commentaires.
Regardez aussi du côté failles de sécurité et conformité aux normes internationales:
IE = poubelle de M$
Firefox = avenir du web


Bonne journée.
SapceHog - 11 juil. 2008 à 11:02
IE ne reconnait pas le style block pour les elements tr ...

ni le inline ni le table-row ...

Bref IE est top :!!!

Pour contourner ce souci il suffit de mettre
elem.style.display="";
Ajouter un commentaire
Réponse
+1
moins plus
Au lieu de mettre :
style.display = 'none'

tu mets :
style.visibility = 'hidden'


ps : inverse :
style.visibility = 'visible'

mioux - 14 mars 2008 à 15:04
Il y a un problème avec visibility c'est que l'objet est que l'espace consacré à l'élément est toujours visible, seul le rendu est caché, contrairement à la propriété display qui cache l'élément et son espace. Du coup pour remplacer une cellule par une autre dans un tableau, ca ne peut pas fonctionner
Ajouter un commentaire
Réponse
+1
moins plus
j'ai des doute sur ta balise script.. Elle devrait plutot resembler à <script language="javascript" type="text/javascript">
Ajouter un commentaire
Réponse
+0
moins plus
Salut!

Ca fonctionne chez moi avec IE 6.0.

As-tu vérifié tes paramètre de sécurité Javascript dans IE?

;-)
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
Meme probleme pour moi, cela fonctionne tres bien sous Firefox, Opera 9.5b1 et Safari PC 3.03b. Mais sous IE6 et IE7, Nada. Message d'erreure d'IE7 : Impossible d'obtenir la propriété display : argument non valide.

Quelqu'un aurait il une solution s.v.p. ? Merci d'avance.

voici l'extrait de mon code ou j'utilise cette methode :

[...]
echo '<tr onclick="if($(\''.$scelles['id_scelle'].'s'.'\').style.display == \'none\'){$(\''.$scelles['id_scelle'].'s'.'\').style.display=\'table-row\';$(\''.$scelles['id_scelle'].'sb'.'\').style.display=\'table-row\';}else{$(\''.$scelles['id_scelle'].'sb'.'\').style.display=\'none\';$(\''.$scelles['id_scelle'].'s'.'\').style.display=\'none\';};">
[...]
Ajouter un commentaire
Ce document intitulé « [CSS] display: {block|none}; TABLE sous IE??? » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?