2014-09-18 9 views
9

Ich bin daran interessiert, einen Block von Text zu zeigen, wenn es kein "& nbsp;" (leerer Raum) ist, sonst um es zu verbergen. Ich möchte verwenden CSS nur. Der Code ist:Wie kann man div verstecken, wenn sein Inhalt 1 Zeichen hat, nur mit CSS?

<div>Some text here</div> 
<div>&nbsp;</div> 
<div>Another text here</div> 

die "& nbsp;" Entfernen ist keine Variante. (Wenn Sie wollte mir empfehlen mit : leer) Aufmerksamkeit

Bitte, dass die div global ist und auch zufällig platzierten kann, das ist, warum ich für Antwort bin auf der Suche, die die div versteckt, dass nur hat 1 Charakter. (oder irgendwelche anderen Varianten davon).

Nur um es zu verdeutlichen, ich kann das HTML nicht ändern, es lädt die Daten aus einer Datenbank, daher muss ich eine CSS-Datei verwenden, um den Div-Inhalt/-Tag zu verbergen. Wenn es irgendwie hilft, dann ist der Text NICHT dynamisch und statisch, er ändert sich nur einmal, wenn der Text aus der Datenbank geladen wird.

Vielen Dank im Voraus!

+4

Ich glaube nicht, dass es mit CSS allein möglich ist. Aber ich habe gewählt, weil ich gerne eine CSS-Lösung sehen würde. Ich kann mir ein sehr einfaches Javascript vorstellen, aber das ist natürlich nicht das, wonach Sie fragen. – ntgCleaner

+0

Ich bin zu 99,9% sicher, dass es unmöglich ist, es nur mit CSS zu tun. – Sergey6116

+1

Es ist derzeit unmöglich, fürchte ich; Sie müssen entweder die Ausgabe/Antwort des Servers ändern oder JavaScript verwenden. –

Antwort

2

Das ist nicht möglich nur mit CSS. Die CSS-Selektoren entsprechen HTML-Elementen, die auf bestimmten Elementattributen (ID, Klasse usw.) oder Knotstrukturbedingungen (z. B. Kindindexposition) basieren. Es gibt jedoch keinen Selektor, der auf dem Inhalt basiert.

Sie können bestimmte Teile des Textinhalts des Elements (Anfangsbuchstabe usw.) formatieren, aber niemals einen Inhalt verwenden, um auf das übergeordnete Element des Elements zu verweisen.

Die W3 Docs über CSS SELECTORS gibt die folgenden als die Regel-Selektoren ist möglich Element:

  • Universalselektor
  • Typselektoren
  • Nachfahrenselektoren
  • Kinder Selektoren
  • Angrenzende Geschwister-Selektoren
  • Attributselektoren
  • ID-Selektoren
  • Pseudo-Elemente und Pseudo-Klassen
  • Pseudo-Klassen
  • Pseudo-Elemente

Sorry, aber es gibt keine "Inhalt" Wähler noch!

Wie von wumm kommentiert, gab es einige Vorschläge, aber keine wurde implementiert.
JQuery hat einige "Pseudo" s implementiert, die dem nahe kommen, wie :has oder :contains, aber selbst diese würden nicht Ihren Bedürfnissen entsprechen.

+0

Es gab einen Vorschlag für einen Inhaltsselektor, der jedoch aus der Spezifikation entfernt wurde. Siehe die 3. Antwort: http://stackoverflow.com/questions/1520429/css-3-content-selector – idmean

+0

Beliebige Größe der "Inhalt" Selektor? Nicht den Inhalt selbst überprüfen, sondern nur wie groß es ist, wie lang es ist. Wie kurze Kommentare verwenden und sie grün färben, und lange Kommentare, die den roten Text ausmachen, unabhängig von ihrem Inhalt. Es würde auch meine Frage beantworten, danke! –