: Leere Pseudoklasse beim Hinzufügen von dynamischem Inhalt

9

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.

    
Joseph 25.02.2012, 11:14
quelle

1 Antwort

5

Die von dir zur Verfügung gestellte Geige funktioniert bei mir mit FF10 und IE9. Es schlägt nur in Chrome (18 +)

fehl

Ich 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 .. Ссылка

    
Gaby aka G. Petrioli 25.02.2012, 11:44
quelle

Tags und Links