Theres une erreur dans ma démo plutôt grande où je suppose que toutes les divs sous la classe spéciale seront utilisées pour aligner quelque chose. Maintenant, je me rends compte que j'ai besoin d'ajouter un supplément de div en dehors de la pièce que je veux aligner mais à l'intérieur de Comment puis-je écrire .pecial div [pas soméclasse]? ou n'y a-t-il aucun moyen de le faire et j'ai besoin de réécrire beaucoup de HTML? P> .pecial code>. P>.
3 Réponses :
J'irais avec jQuery ou un autre cadre JavaScript, les sélecteurs juste rock et pas la classe XY est plutôt facile à réaliser. Comme Pekka a souligné que je ne suis pas sûr de ce que vous voulez les frères cibler. getelementsbyclassname () est mis en œuvre par presque tous les navigateurs (vous savez lequel ne fonctionne pas, n'est-ce pas?
J'ai trouvé un onload=function(){
if (document.getElementsByClassName == undefined) {
document.getElementsByClassName = function(className)
{
var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
var allElements = document.getElementsByTagName("*");
var results = [];
var element;
for (var i = 0; (element = allElements[i]) != null; i++) {
var elementClass = element.className;
if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
results.push(element);
}
return results;
}
}
}
Hehe ... "Je ne suis pas sûr de ce que tu veux cibler". Je vous donnerais un humour upvote si une telle chose existait :)
typeof x == 'non défini' code> est meilleur que x == non défini code> car non défini code> est juste une variable globale qui peut être définie sur n'importe quoi, mais typeof code> est un mot clé qui renvoie toujours la chaîne correcte.
@ Šime whoops ... Je vais le laisser comme c'est pour le futur plaisir @casablanca, je suis toujours allé avec ce dernier, mais votre explication me dit qu'il y a une meilleure façon. Merci!
CSS3 inclut le sélecteur non () code>. Le seul problème est (vous l'avez deviné) aucune compatibilité. Si vous êtes prêt à exiger JavaScript à partir de IE <9 utilisateurs, vous pouvez obtenir une compatibilité avec IE9.JS. P>
+1 aux deux réponses ci-dessus. J'ajouterai que j'ai pu sortir avec certaines choses, mais écrire cela dans le bloc CSS pour annuler l'effet
some-type: inherit;
C'est brillant - exactement ce dont j'avais besoin!
Avec quels navigateurs avez-vous besoin d'être compatibles? Qu'en est-il de IE6 par exemple? Cela affectera directement la complexité de la solution