Frage

Wie kann man div und p -Elementen zusammenbrechen, wenn sie durch CSS so leer sind, dass die Tags nicht für den Benutzer im Quelltext angezeigt werden?

Diese Elemente sind in meinem Quellcode obwohl sie leer sind. Dies bewirkt, dass Fehler mit dem Rest der Seite.

Ich betreiben diese erfolglos

div.unsuccessful,
div.unsuccessful p {
    visibility: collapse;                                                                                                                                                                                      
}

Dies legt nahe, mir, dass Sie offenbar nicht so etwas von CSS tun können. Vielleicht ein anderes Werkzeug wie PHP benötigt wird.

War es hilfreich?

Lösung

CSS hat keinen Einfluss auf den eigentlichen HTML-Code, so dass dies nicht getan werden kann. In dem (kommenden) CSS3, könnte man sie davor gemacht mit der :empty Pseudo-Klasse stoppen:

div:empty {
    display: none;
}

Das ist natürlich nicht die gleiche Sache, aber es wäre wahrscheinlich die Probleme beheben Sie haben .. wenn nur Browser es tatsächlich unterstützt, die sie nicht, noch nicht.

Die beste Option ist, sie auf dem Server zu entfernen, eine Skriptsprache wie PHP. Ich nehme an, Sie könnte tut es Client-Seite mit JavaScript, aber das ist eine schreckliche Lösung, imo.

Dass gesagt wird, welche Probleme haben Sie mit diesen leeren Tags? Warum sind sie dort in erster Linie? Es scheint mir, dass einige Redesign in Ordnung ist, die unnötigen Tags zu verhindern, dass in erster Linie erzeugt wird.

Auch seien Sie vorsichtig. Leere Tags sind nicht immer sinnlos. In der Tat kann jede leere <div> da draußen zu entfernen schädlich angesehen werden.

Andere Tipps

Ja, wenn Sie wollen, dass sie in sein stoppen die Quelle , werden Sie die entsprechenden Überlegungen in Ihrem Server-Code vornehmen müssen. Alternativ können Sie auch den HTML-Code in JavaScript festgelegt, aber es ist nicht der empfohlene Ansatz für dieses Problem, wahrscheinlich. Sie können jedoch sagen, ein bisschen mehr über das, was Sie versuchen zu tun.

Sichtbarkeit Eigenschaft soll, ob der Inhalt des Objekts setzen angezeigt wird oder nicht. Es wird nicht das Element entfernen aus dem Innern des DOM.

  

kollabieren Neu für Windows Internet   Explorer 8

     

in Tabellen Zeilen und Spalten zu entfernen; für alle anderen Elemente, die gleiche wie versteckte.

Auch warum wollen Sie das tun?

div { display: none; }

entfernt ein Element vollständig von der Seite.

Es wird zeigen, immer noch in Ihrem Quellcode , egal, was Sie mit CSS zu tun. Der Browser verbindet die HTML-Quelle und die CSS-Richtlinien in eine darstellbare Seite, die ursprüngliche Quelle wird nicht verändert. CSS kann nur die visuelle Darstellung von Elementen beeinflusst, kann es nicht Elemente verändern. Um tatsächlich Elemente aus dem DOM entfernt Sie müssen Javascript (oder nicht die Elemente setzen dort an erster Stelle).

Ja, Sie müssen Server-Seite Verarbeitung verwenden, um einige Codes zu erhalten oder nicht-Show für den Benutzer:

if ($showAdminLink) {
    echo "<p><a href=\"admin.php\">Admin panel</a></p>";
}

Egal, welche Tricks, die Sie versuchen, alles auf der Client-Seite getan (HTML, Javascript, CSS) mit verändert und abgespielt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top