7
votes

CSS pas de classe Sélectionnez-vous?

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 .pecial . .

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?

css

1 commentaires

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


3 Réponses :


1
votes

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 solution sur développé Pour que cela fonctionne également dans IE: P>

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;
    }
}
}


3 commentaires

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' est meilleur que x == non défini car non défini est juste une variable globale qui peut être définie sur n'importe quoi, mais typeof 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!



8
votes

CSS3 inclut le sélecteur non () . 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.


0 commentaires

5
votes

+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;


1 commentaires

C'est brillant - exactement ce dont j'avais besoin!