div backgroud-color не работает в firefox - PullRequest
0 голосов
/ 05 августа 2009

Привет, я работаю с divs на странице asp.net. Здесь я хочу динамически добавить стиль в мой div.

Так что я пытаюсь сделать так

mydiv.Style.Add ("background-color", "# a08b74");

отлично работает в IE. Но не работает в Firefox

В чем проблема

Ответы [ 2 ]

2 голосов
/ 05 августа 2009

Возможно, проблема вовсе не в том, что цвет фона не работает, а в том, что размер тега div отличается от того, что вы думаете.

В IE есть ошибка рендеринга, из-за которой он расширяет элемент, чтобы охватить дочерние элементы даже в ситуациях, когда он не должен этого делать. Если в элементе div есть только плавающие элементы, они не должны влиять на размер элемента div, а высота элемента div равна нулю.

Очевидно, что вы не можете видеть цвет фона элемента с нулевой высотой.

Чтобы div получал его высоту от плавающих элементов, вы можете поместить невыполняющий очищающий div последним в div:

<div class="Clear"></div>

Используйте этот стиль:

.Clear { clear: both; height: 0; overflow: hidden; }

(Стиль переполнения таков, что IE не применяет другую подобную ошибку, делая очистку div одним символом, даже если вы указали высоту ноль.)

0 голосов
/ 06 августа 2009

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

Вместо вставки очищающего элемента, вы можете применить немного хака CSS к самому содержащему div:

создать класс и применить к div:

.clearfix:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}

Затем его можно использовать повторно, чтобы не загромождать вашу разметку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...