2016-04-26 4 views
0

Использования хрома для проверки я вижу какой-то код, как это:с помощью CSS пустого, чтобы скрыть элемент

<div class="entry-content"> 
    <p>We .... </p> 
</div> 
<footer class="entry-footer"> 
        </footer> 

Иногда сноска пуста, а на друг это не так.

Когда он пуст, я стараюсь, чтобы скрыть его:

footer.entry-footer:empty { 
display:none; 
} 

, но он не работает.

Так что я либо делаю что-то неправильно (или я предполагаю, что это на самом деле не пуст!)

+3

': empty' не будет работать, если ваш элемент имеет пробелы. Есть ли у него? – Harry

+0

Хорошо. Вероятно, это так. – maxelcat

+0

Проверено снова в ff да 1 раз – maxelcat

ответ

1

:empty требует элемент в тоже пусто.

Вот example, .test.blue и .test.red имеют белое пространство и не display: none; (без JS ниже, где .test.red становится скрытой) ...

, если вы хотите, чтобы удалить пустое пространство после нагрузки, здесь это некоторые JS, чтобы сделать это:

var empties = document.querySelectorAll('[selector_here]'); 
for (key in empties) { 
    if (typeof empties[key].innerHTML != "undefined") empties[key].innerHTML = empties[key].innerHTML.trim() 
} 

JS выше обрезает пробелы из любого элемента, соответствующий данной селектор, в моем примере я использовал класс empty (вы можете увидеть, что работает на .test.red)

Но я бы рекомендовал удалить его из HTML

+0

Это действительно, очень полезно! Спасибо – maxelcat

+0

Я немного переместил php - теперь пространство ушло, и все это работает. – maxelcat

+0

@maxelcat, если вы используете php, у этого тоже есть функция обрезки: http://php.net/manual/en/function.trim.php –

1

Я сделал быстрый test для вас, и, казалось бы, что пробельные рассчитывает как содержание. Начиная ваш закрывающий тег на новой строке будет тихо вставлять символ новой строки, поэтому поэтому ваш селектор для: empty не работает.

В качестве решения, ваш HTML должен выглядеть следующим образом:

<footer class="entry-footer"></footer> 

Потому что нет буквально ничего между открывающим и закрывающим тегами, элемент проходит как :empty

+0

спасибо Kraig - очень полезно – maxelcat

Смежные вопросы