11548 sujets
Perso je ne connais pas de moyen de le savoir.
Je peux tout de même te dire que ce que tu fais est assez bizarre. Pourquoi à tu besoin de modifier le dom si les CSS ne sont pas interprétés.
Pour ton besoin, tu pourrais masquer un block par une CSS, est via javascript tester si ce block est masqué où non...
Je peux tout de même te dire que ce que tu fais est assez bizarre. Pourquoi à tu besoin de modifier le dom si les CSS ne sont pas interprétés.
Pour ton besoin, tu pourrais masquer un block par une CSS, est via javascript tester si ce block est masqué où non...
Bonjour MoOx,
Pour être plus exact, j'aimerais ne pas modifier le dom si le CSS n'est pas supporté.
Prenons un exemple:
Un page html contient une liste à puces d'éléments.
Lorsque le js et le CSS est supporté, un script masque tous les éléments sauf le premier.
L'utilisateur peut visualiser les autres éléments via les options d'un élément "select". Celui-ci étant générer dynamiquement via js.
Ainsi, l'élément visible devient invisible alors que l'élément choisi par l'utilisateur devient visible.
Cela je sais le faire.
Par contre, si le js est actif mais pas le CSS, je me retrouve avec la liste complètes des éléments (car style.display="none" n'a pas d'effet) et le formulaire de sélection. Celui-ci ne sert à rien vu que tous les élément sont visibles.
J'aimerais donc ne créer le formulaire de sélection que si le CSS est supporté.
J'ai essayé ceci:
Que le CSS soit activé ou non, j'affiche toujours "none".
Quelqu'un as-t-il une idée ?
Merci
Modifié par Mathieu_vd (10 Sep 2007 - 14:11)
Pour être plus exact, j'aimerais ne pas modifier le dom si le CSS n'est pas supporté.
Prenons un exemple:
Un page html contient une liste à puces d'éléments.
Lorsque le js et le CSS est supporté, un script masque tous les éléments sauf le premier.
L'utilisateur peut visualiser les autres éléments via les options d'un élément "select". Celui-ci étant générer dynamiquement via js.
Ainsi, l'élément visible devient invisible alors que l'élément choisi par l'utilisateur devient visible.
Cela je sais le faire.
Par contre, si le js est actif mais pas le CSS, je me retrouve avec la liste complètes des éléments (car style.display="none" n'a pas d'effet) et le formulaire de sélection. Celui-ci ne sert à rien vu que tous les élément sont visibles.
J'aimerais donc ne créer le formulaire de sélection que si le CSS est supporté.
J'ai essayé ceci:
elem.style.display="none"
alert(elem.style.display);
Que le CSS soit activé ou non, j'affiche toujours "none".
Quelqu'un as-t-il une idée ?
Merci
Modifié par Mathieu_vd (10 Sep 2007 - 14:11)
Je crois que j'ai trouvé la solution.
Je la poste au cas où cela servirait à un autre membre.
J'utilise la fonction getStyle() de quirksmode.
Quand le CSS est actif, j'affiche "none".
Après désactivation du CSS, j'affiche "block".
Je peux donc obtenir une meilleure dégradation de mon js comme ceci:
<edit>
Voici la fonction que j'ai créé:
Elle fonctionne sous IE, FF, Opera et Safari version PC.
Je n'ai pas la possibilité de tester sous Mac et linux...
Si quelqu'un voit un moyen d'améliorer tout cela, je suis prenneur
</edit>
Modifié par Mathieu_vd (11 Sep 2007 - 17:19)
Je la poste au cas où cela servirait à un autre membre.
J'utilise la fonction getStyle() de quirksmode.
elem.style.display="none"
alert(getStyle (elem, 'display'));
Quand le CSS est actif, j'affiche "none".
Après désactivation du CSS, j'affiche "block".
Je peux donc obtenir une meilleure dégradation de mon js comme ceci:
elem.style.display="none";
if (getStyle (elem, 'display')=="none") {
//création du formulaire
}
elem.style.display="block";
<edit>
Voici la fonction que j'ai créé:
function isCSSSupported(){
if (!document.createElement) return false;
var elem = document.createElement('div');
document.body.appendChild(elem);
elem.style.display="none";
var support = (getStyle (elem, 'display')=="none");
document.body.removeChild(document.body.lastChild);
return support;
}
Elle fonctionne sous IE, FF, Opera et Safari version PC.
Je n'ai pas la possibilité de tester sous Mac et linux...
Si quelqu'un voit un moyen d'améliorer tout cela, je suis prenneur

</edit>
Modifié par Mathieu_vd (11 Sep 2007 - 17:19)