2014-09-18 7 views
9

Interesuje mnie pokazanie bloku tekstu, gdy nie jest on "(puste miejsce)", w przeciwnym razie, aby go ukryć. Chcę użyć CSS tylko. Kod jest:Jak ukryć div, gdy jego zawartość ma 1 znak przy użyciu tylko CSS?

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

Wyjmowanie "& nbsp;" nie jest wariantem. (Jeśli chciał zasugerować mi użyciem : pusty)

Proszę się uwagę, że div jest globalny i może losowo umieszczone także, dlatego szukam odpowiedzi, które ukrywa div, że tylko ma 1 znak. (lub dowolne inne jego warianty).

Po prostu, aby było jasne, nie mogę zmienić html, to ładowanie danych z bazy danych, dlatego muszę użyć pliku CSS, aby ukryć zawartość/tag div. Jeśli to pomaga, to tekst NIE jest dynamiczny i jest statyczny, zmienia się tylko raz, gdy tekst jest ładowany z bazy danych.

Z góry dziękuję!

+4

Nie sądzę, że jest to możliwe z samym CSS. Ale głosowałem za, ponieważ chciałbym zobaczyć rozwiązanie tylko CSS. Mogę myśleć o bardzo łatwym javascript, ale nie o to pytasz oczywiście. – ntgCleaner

+0

Mam 99,9% na pewno nie da się tego zrobić tylko z CSS. – Sergey6116

+1

Obecnie jest to niemożliwe, obawiam się; będziesz musiał zmienić wyjście/odpowiedź serwera lub użyć JavaScript. –

Odpowiedz

2

To niemożliwe przy użyciu tylko CSS. Selektory CSS dopasowują elementy HTML na podstawie atrybutów konkretnego elementu (identyfikator, klasa itp.) Lub warunków struktury węzła (takich jak pozycja indeksu podrzędnego), ale nie ma selektora opartego na treści.

Można kształtować określone części zawartości tekstu elementu (pierwsza litera, itp.), Ale nigdy nie używać zawartości do kierowania jej na rodzica.

W3 Docs o CSS SELECTORS określa następujące jako selektory reguły ewentualnego elementu za:

  • selektora uniwersalnego
  • typów selektorów
  • potomka Selektory
  • Selektory dzieci
  • Sąsiednie selektorów rodzeństwo
  • Selektory atrybutów
  • Selektory ID
  • pseudo-elementy i Pseudoklasy
  • Pseudoklasy
  • pseudoelementy

Niestety, ale nie ma "content" selektor jeszcze!

Zgodnie z komentarzem poniżej wumm, pojawiły się pewne propozycje, ale żadna nie została wdrożona.
JQuery zaimplementował kilka "pseudo", które się do niego zbliżają, np. :has lub :contains, ale nawet te nie pasowałyby do twoich potrzeb.

+0

Pojawiła się propozycja dla selektora treści, ale została usunięta ze specyfikacji. Zobacz trzecią odpowiedź: http://stackoverflow.com/questions/1520429/css-3-content-selector – idmean

+0

Dowolny rozmiar selektora "treści"? Nie sprawdzanie samej zawartości, ale tylko jej wielkości, długości. Podobnie jak przy użyciu krótkich komentarzy i kolorować je na zielono, a długie komentarze na czerwono, niezależnie od ich treści. To również odpowie na moje pytanie, dzięki! –

Powiązane problemy