Ich weiß, dass das ziemlich spezifisch ist, aber ich musste diesen Selektor früher schreiben, um ein Problem zu beheben, und ich habe jQuery verwendet, weil der Selektor eher fortgeschritten ist (und browserübergreifend funktionieren musste). Ich musste den Ankerlink eines Listenelements auswählen, aber nur, wenn dieses Listenelement keine weitere Liste enthielt und sich auf der obersten Ebene der verschachtelten Listenstruktur befand (nicht tiefer).
$("ul.dropdown > li:not(:has('ul')) a").css({
"background-image": "none",
});
Die Idee war, dass jeder der Links auf oberster Ebene im Dropdown-Menü eine Grafik mit einem „Pfeil nach unten“ hatte, aber die Listenelemente, die kein Dropdown hatten, sollten diesen Pfeil entfernt bekommen.
Schön gemacht.
Warum verwenden Sie nicht stattdessen .addClass? Das ist schöner und flexibler.
@Ignacio .addClass ist eine schöne Methode, um Dinge zu verstecken, z. B. jedem Listenelement eine Klasse .hiddenArrow hinzuzufügen, um die Elemente zu verstecken.
Allerdings, und ihr könnt mich gerne korrigieren, wenn ich falsch liege, ist es anstrengender, alle Elemente zu finden und eine Klasse hinzuzufügen, als diese spezielle Instanz einfach in CSS zu korrigieren.
Vielleicht sind diese beiden im Grunde dasselbe, egal wie?
Aber .css ist meiner Meinung nach weitaus flexibler als .addClass, da man die CSS-Regel on-the-fly schreiben kann.
Wenn Sie später einen Rahmen entfernen müssen, aber keinen Hintergrund, oder eine Farbe hinzufügen, oder was auch immer, müssen Sie nicht das JavaScript bearbeiten, wenn Sie addClass verwenden.
Gab es einen Grund, warum Sie nicht die Umkehrung verwendet haben?
ul.dropdown > li:has('ul') a = background-image
Nicht besonders, es fühlte sich einfach korrekter an, da nur einer von ihnen (zu der Zeit) das Bild entfernt bekommen musste.
Besser, eines zu entfernen, anstatt 12 hinzuzufügen?
Ich taste mich noch an jQuery heran und habe mich gestern gefragt, ob so etwas für ein Dropdown-Menü bei einem neuen Projekt funktionieren würde.
Auch browserübergreifend, schöne Sache :)
Wäre es nicht einfacher gewesen, den Linkelementen, die eine weitere Liste enthalten, eine CSS-Klasse hinzuzufügen?
Wir neigen heute dazu, Javascript zu verwenden, um so ziemlich alles zu reparieren, wenn wir Optionen haben, es mit der richtigen Sprache zu reparieren, was in diesem Fall CSS ist.
Wie löse ich dieses Problem: http://stackoverflow.com/questions/2004328/how-to-give-style-to-list-item-only-if-item-has-another-list-inside-otherwise-sty
Ich hoffe wirklich, dass Sie dieses Thema noch etwas weiter ausführen werden.
Ich mag etwas mehr Informationen.
Interessantes Design dieser Seite. Ist das eine überarbeitete Version von Theophilus?
Wenn Sie Ihre Erfahrung verbessern möchten, besuchen Sie einfach diese Website weiter und bleiben Sie über die neuesten Nachrichten informiert
Update hier gepostet.
Darf ich einfach sagen, was für eine Erleichterung, jemanden zu finden, der im Internet tatsächlich weiß, wovon er spricht. Sie wissen sicherlich, wie man ein Problem beleuchtet und es wichtig macht. Mehr Leute sollten das lesen und diese Seite der Geschichte verstehen. Es ist erstaunlich, dass Sie nicht bekannter sind, da Sie
sicherlich das Talent haben.
Wow, unglaubliches Blog-Layout! Wie lange haben Sie
schon einen Blog? Sie lassen das Bloggen einfach aussehen. Der gesamte Look Ihrer Website ist fantastisch, ganz zu schweigen
vom Inhalt!