Ich habe auf dieser SitePunktseite und Qualitätsmodus-Seite über die neue Pseudoklasse :empty
.
Sitepoint sagte, dass selbst wenn dynamischer Inhalt angehängt wird, der leere Stil dennoch wirksam wird. Es wird angemerkt, dass Firefox das war, das sich so verhält.
Quirksmode sagte, dass es den leeren Zustand verwirft, wenn er mit einigen Elementen oder Text gefüllt ist. Die Demo auf dieser Seite funktioniert in meinem Browser (Chrom 19). So nahm ich an, dass nur firefox fehlerhaft wäre.
Allerdings habe ich diesen Code in meinem Plugin, der eine Liste mit Elementen dynamisch füllt, es scheint nicht zu funktionieren, Hier ist eine Geige , die Listenelemente anfügt, selbst wenn Sie auf die Schaltfläche klicken, werden die Elemente erst angezeigt, wenn Sie versuchen, sie in der Konsole zu debuggen (sie erscheinen auf magische Weise, wenn Sie in der Elementstruktur auf <li>
klicken) .
Warum passiert das und gibt es eine Arbeit, um den leeren Stil zu erzwingen?
Ich weiß, dass es andere Möglichkeiten gibt, das zu tun, was ich in der Geige mache (und momentan eine dieser "anderen Möglichkeiten"), aber die Methode :empty
ist viel einfacher.
AKTUALISIEREN :
hat eine Schaltfläche zum Entfernen von Objekten hinzugefügt. Wenn das letzte Element entfernt wird, sollte die Liste verschwinden - funktioniert immer noch nicht. hmmm .. ich werde versuchen, in einem anderen Browser nachzusehen.
FIX
Vorübergehende Lösung / Alternative zur Verwendung von :empty
und display:none
besteht darin, dass das Element null width
, height
, borders
, margins
und paddings
hat. zusätzlich position:absolute
, um es aus dem Fluss zu entfernen.
Die von dir zur Verfügung gestellte Geige funktioniert bei mir mit FF10 und IE9. Es schlägt nur in Chrome (18 +)
fehlIch bin mir nicht sicher, warum dies passiert, da die Quirksmode-Seite auch in Chrome funktioniert.
Für force-discard scheint es möglich zu sein, fast jede CSS-Eigenschaft mit Code zu setzen.
Beispiel bei Ссылка
Aktualisieren
Ok, ich habe diesen Chrome-Fehlerbericht gefunden / strong> Das ist ungefähr :empty
selector misbehaving bei Verwendung mit display:none
Es ist als fest markiert, aber vielleicht sollten wir es wieder öffnen.
Hier ist ein Test, der display:none
nicht verwendet ( er ändert nur die Hintergrundfarbe ) und funktioniert einwandfrei .. Ссылка
Tags und Links css css3 pseudo-class