Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: coderamaОтветов: 5

У меня есть следующий 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

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

cssinternet-explorerstyles

Ответы

Ответ 1 · рейтинг 2 · Mauro

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

Ответ 2 · рейтинг 1 · rahul

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

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

Изменить:

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

Ответ 3 · Russell

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

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

Ответ 4 · pavium

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

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

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

Ответ 5 · Yonatan Karni

не уверен, что вы ожидали. Я получаю последовательное поведение в 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, чтобы увидеть, что на самом деле применяется?

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы