2009-08-20 6 views
1

Как вы можете свернуть div и p-элементы, если они пустыми CSS, так что теги не отображаются для пользователя в исходном коде?Чтобы свернуть div и p с помощью CSS

Эти элементы находятся в моем исходном коде, хотя они пусты. Это вызывает ошибки с остальной частью сайта.

я запускаю это неудачно

div.unsuccessful, 
div.unsuccessful p { 
    visibility: collapse;                                              
} 

Это говорит о том, что ты, по-видимому, не может сделать такую ​​вещь по CSS. Возможно, необходим другой инструмент, такой как PHP.

ответ

5

CSS не влияет на фактический HTML-код, поэтому этого не может быть сделано. В (предстоящих) CSS3, вы могли бы остановить их от визуализации с использованием :empty псевдо-класс:

div:empty { 
    display: none; 
} 

То есть, конечно, не то же самое, но это, вероятно, исправить проблемы у вас .. если только браузеры действительно поддерживали его, а это еще не так.

Лучшим вариантом является удаление их на сервере с использованием языка сценариев, такого как PHP. Я полагаю, вы может сделать это на стороне клиента с JavaScript, но это ужасное решение, imo.

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

Кроме того, будьте осторожны. Пустые теги не всегда бессмысленны. Фактически, удаление всех пустых <div> там может считаться вредным.

1

Да, если вы хотите остановить их в источнике, вам нужно будет учесть соответствующие соображения в коде сервера. Кроме того, вы также можете установить HTML в JavaScript, но, вероятно, это не рекомендуемый подход для этой проблемы. Вы можете сказать еще немного, о том, что вы пытаетесь сделать.

1
div { display: none; } 

полностью удаляет элемент со страницы.

Он будет отображаться в вашем исходном коде, независимо от того, что вы делаете с CSS. Браузер объединяет источник HTML и директивы CSS в отображаемую страницу, исходный источник не изменяется. CSS может влиять только на визуальное отображение элементов, он не может изменять элементы. Чтобы на самом деле удалить элементы из DOM, вам понадобится Javascript (или не помещать туда элементы в первую очередь).

1

Свойство Visibility предназначено для определения того, отображается ли содержимое объекта или нет. Он не удалит элемент из DOM.

коллапс Новое в Windows Internet Explorer 8

Используется в таблицах для удаления строк и столбцов; для всех остальных элементов, таких же, как скрытые.

Также почему вы хотите это сделать?

0

Да, вам придется использовать обработку на стороне сервера, чтобы показать или не показать код для пользователя:

if ($showAdminLink) { 
    echo "<p><a href=\"admin.php\">Admin panel</a></p>"; 
} 

Независимо от того, какие приемы вы пытаетесь, что-либо сделать на стороне клиента (HTML, JavaScript , CSS) могут быть изменены и воспроизведены.