IE и прозрачный фон

У меня есть следующий css:

body {
     background-image: url(images/background.jpg);
     background-repeat: repeat-x;
     background-color: #99ccff;
}

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

bacgkround: none;
background: transparent;
bacgkround-color: none;
background-color: transparent;

Кто-нибудь знает, как обойти это (в IE)? т. е. как сделать div прозрачным или НЕ иметь цвета фона?

РЕДАКТИРОВАТЬ: я загрузил скриншот здесь: http://www.namhost.com/bgtrans.jpg По сути, фон — это градиентное изображение, которое меняется от ТЕМНО-синего до светло-голубого, который является фоном. В firefox область с надписью bradd pitt прозрачна, и вы не видите синего контура. Однако в IE вы видите то, что видите на этом снимке экрана.

Вот скриншот того, что можно увидеть в Firefox: http://www.namhost.com/bgtransfirefox.jpg


person coderama    schedule 31.08.2009    source источник
comment
Если вы можете опубликовать html-код, это может быть полезно для определения проблемы. Или можно ссылку на страницу?   -  person rahul    schedule 31.08.2009


Ответы (5)


не уверен, что здесь происходит не так (если что-то вообще идет не так), прозрачный и ни один из них не означает, что div не должен иметь свой собственный цвет, и поэтому вы увидите через div фон родительского контейнера.... если ни один из у родителей есть цвет, тогда вы увидите фон тела/страницы

person Mauro    schedule 31.08.2009
comment
Ok. больше информации. тело имеет фоновое изображение И цвет. И div находится над частью ИЗОБРАЖЕНИЯ фона. Так что, по идее, если бы он был прозрачным, вы должны были бы видеть изображение. Однако я вижу ЦВЕТ. Я добавил вокруг него рамку, которая дает понять, что div на самом деле имеет один сплошной цвет и НЕ прозрачен. - person coderama; 31.08.2009

Ваше предположение о цвете фона кажется неверным.

Сделать фон прозрачным означает, что вы получите фон основного элемента. Я думаю, в этом случае это ваш элемент тела. Поскольку вы установили цвет фона для тега body, все элементы с прозрачным цветом фона будут отображать цвет фона тела.

Изменить:

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

person rahul    schedule 31.08.2009
comment
Я добавил изменения в свой исходный пост. - person coderama; 31.08.2009
comment
Я также добавил скриншоты! :-) - person coderama; 31.08.2009

Если бы вы могли использовать сторонний инструмент, JQuery предоставляет следующие функции:

http://mihaistancu.wordpress.com/2008/08/02/cross-browser-transparent-background-with-jquery-no-css-hacks-no-png-files/

person Russell    schedule 31.08.2009

Но я думаю, что это то, что должно произойти.

Если элементу div не назначен цвет фона, будет виден цвет фона тела.

Особенно если вы говорите, что фон div прозрачен.

person pavium    schedule 31.08.2009
comment
Может я не ясно выразился. В новый div я добавил эти фоновые: прозрачные записи, и div по-прежнему показывает фон тела, а НЕ делает его прозрачным. - person coderama; 31.08.2009
comment
Боюсь, я еще не понял ... разве вы не описываете ситуацию, когда фон тела виден, ПОТОМУ ЧТО фон div прозрачен? - person pavium; 31.08.2009
comment
Нет, я не. :-) См. мой комментарий выше. Я забыл упомянуть, что на странице также есть фоновое изображение. Я посмотрю, не могу ли я разместить пример в Интернете. - person coderama; 31.08.2009

не уверен, что вы ожидали. Я получаю последовательное поведение в firefox и IE для этого кода:

<html>
<style>
body
{
    background: green;
}
.a
{
    bacgkround-color: none;
}
</style>
<body>
<div class="a">hello</div>
<div>world</div>
</body>
</html>

если это более сложный сценарий, использовали ли вы debugBar для проверки примененного стиля или, по крайней мере, FireBug в Firefox, чтобы увидеть, что на самом деле применяется?

person Yonatan Karni    schedule 31.08.2009