: пустой псевдокласс при добавлении динамического контента - PullRequest
10 голосов
/ 25 февраля 2012

На этой странице sitepoint и quirksmode page я прочитал о новом :empty псевдоклассе.

Sitepoint сказал, что даже при добавлении динамического контента пустой стиль все равно будет действовать. Отмечается, что именно Firefox вел себя таким образом.

Quirksmode сказал, что он отбрасывает пустое состояние, когда он заполняется какими-то элементами или текстом. демонстрация на этом сайте работает в моем браузере (Chrome 19). Поэтому я предположил, что только Firefox будет глючить.

Однако у меня есть этот фрагмент кода в моем плагине, который динамически заполняет список элементами, он, кажется, не работает, вот скрипка , которая добавляет элементы списка, даже если вы нажмете Кнопка, элементы не появятся, пока вы не попытаетесь отладить их в консоли (они волшебным образом появляются, когда вы нажимаете <li> в дереве элементов).

Почему это происходит, и есть ли обходной путь, чтобы "принудительно отказаться" от пустого стиля?

Я знаю, что есть другие способы сделать то, что я делаю в скрипке (и в настоящее время делаю один из этих "других способов"), но метод :empty намного проще.

UPDATE

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

FIX

Временное исправление / альтернатива использованию :empty и display:none заключается в том, чтобы элемент имел ноль width, height, borders, margins и paddings. дополнительно position:absolute чтобы убрать его из потока.

1 Ответ

5 голосов
/ 25 февраля 2012

Скрипка, которую вы предоставили, работает для меня с FF10 и IE9.Сбой только в Chrome (18 +)

Не уверен, почему это происходит, поскольку страница quirksmode работает и в Chrome ..

Для принудительного сброса этокажется выполнимым путем установки почти любого свойства css с кодом ..

пример на http://jsfiddle.net/gaby/YprUV/9/

Обновление

Хорошо, я нашелэто Отчет об ошибке Chrome , что составляет около :empty неправильного выбора селектора при использовании с display:none

Он помечен как фиксированный, но, возможно,мы должны снова открыть его ..

Вот тест, который не использует display:none (, он просто меняет цвет фона ), и он работает просто отлично. http://jsfiddle.net/YprUV/11/

...