2013-08-19 19 views
13

użyłem selektora :empty w klasie .error. problemem jest to, że nawet jeśli nie ma zawartości wewnątrz div z klasą błędów, klasa błędów nie jest całkowicie usunięta. kiedy testowałem w firebug, znalazłem, że div nadal ma kilka białych znaków i kiedy usunę te dodatkowe spacje, div znika.: pusty selektor nie działa w css

.error{ border:solid 1px #ff0000; color:#ff0000;} 
.error:empty{ display:none;} 

div pokazuje jak to debugowanie:

<div class="error">  </div> 

że dodatkowe przestrzenie widać jest problem. Czy istnieje sposób, aby wyświetlić &nbsp; w css do wyświetlenia: brak? pls pomoc.

+0

Czy masz kontrolę nad wyjściem? – James

Odpowiedz

15

jest tak, ponieważ <div class="error"> </div> (demo) nie jest pusty, ma węzeł tekstowy jako dziecko.

:empty

: empty pseudoklasa reprezentuje dowolny element, który jest w wszystkich dzieci. Uwzględniane są tylko węzły elementów i tekst (w tym białe spacje). Komentarze lub instrukcje przetwarzania nie mają wpływu na to, czy element jest pusty, czy nie.

Spróbuj

<div class="error"></div> 

Demo: Fiddle

+8

Myślę, że to jest dokładnie problem, nie sądzę, że OP ma kontrolę nad wyjściem HTML. – James