Пустой div с красной рамкой виден как красная линия - можно ли его скрыть только с помощью CSS? - PullRequest
1 голос
/ 23 февраля 2012

У меня есть div, в котором будут отображаться ошибки.Моя проблема в том, что, поскольку он имеет красную рамку, он будет отображаться в виде пустой строки, даже если div пуст (ошибок нет).Мне не нравится это поведение;Я бы предпочел, чтобы div был полностью невидимым, когда он пуст.

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

Ответы [ 3 ]

10 голосов
/ 23 февраля 2012

проверить CSS3 псевдокласс :empty

​div{
    border:1px solid red
}

div:empty{
    display:none
}

http://jsfiddle.net/nWRJb/1/

10 голосов
/ 23 февраля 2012

Да. Вот одно из возможных решений с использованием пустых ячеек :

CSS

.error {
    display:table-cell;
    empty-cells:hide;
    padding: 10px;
    border: 1px solid red;
}

HTML

<div class="error"><!-- I am empty --></div>
<div class="error">Error'd!</div>

http://jsfiddle.net/At6Sp/

3 голосов
/ 23 февраля 2012

Лучший способ - управлять им со стороны сервера и НЕ отображать, если он пуст. В противном случае вы можете использовать: пустой селектор, но его поддержка в IE не является надежной.

И да, если вы используете jquery, то все будет в порядке.

$(document).ready(function() { $('div:empty').remove(); });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...