2012-01-11 2 views
2

Добрый день StackOverflow гуру,CSS - заполнение> IE8 в фоновом режиме: нет ребенка с БЕЛАЯ

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

Вот мой CSS

table tr.header{ 
background: url('image.jpg') 0 0 repeat-x !important; 
} 

table td{ 
background: none !important; 
color: #FFF !important; 
} 

td.special{ 
background:url('image2.png'); 0 0 no-repeat transparent !important; 
color: #FFF !important; 
} 

Причины всех Importants является то, что я пытаюсь переписать бог системы ужасно пресный CSS; простые цвета, узкие высоты и никакой пиццаз.

Вот мой общего HTML

<table width="100%" cellspacing="0" cellpadding="0" border="0"> 
    <tbody> 
     <tr class="header"> 
     <td>HEADER TITLE</td> 
     <td class="special"></td> 
     <tr> 
     <td>TABLE CONTENT</td> 
     </tr> 
    </tbody> 
</table> 

Я извиняюсь за <tbody> тег, но система автоматически помещает <tbody> тегов в каждой таблице.

Проблема, с которой я столкнулся, есть только в IE8, у меня есть заданное изображение для класса строки таблицы «Заголовок» и все данные таблицы, чтобы показать как NO background, но IE8 хотел бы заполнить TABLE DATA белым цветом , Я могу увидеть фоновое изображение строки таблицы, если я перейду в инструменты разработчика и отключу CSS для данных таблицы, но там ничего не должно быть ...

Как заставить данные таблицы (за исключением одной маркированной «специальной») на 100% прозрачной и прозрачной в IE8?

+3

Зачем вам извиняться за теги ''? – BoltClock

+0

Если вы используете! Важно, что вы на пути к неудачной ловушке. Вы должны прочитать следующее: http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/ –

ответ

1

Как заставить данные таблицы (для одной надписью «специальный», за исключением) быть 100% чистым и прозрачным в IE8?

Поместите следующий код во внешнюю таблицу стилей по имени ie8.css.

table, 
table td { 
    background: transparent; 
} 

table td.special { 
    background: url('image2.png'); 0 0 no-repeat transparent; 
    color: #FFF; 
} 

Тогда добавьте этот код на свою страницу.

<!--[if IE 8]><link rel="stylesheet" href="ie8.css" /><![endif]--> 
+0

К сожалению, я пробовал цвет фона: прозрачный, и я получая те же результаты. Фоновый элемент для каждого TD, указанный в инструментах разработчика IE8, выглядит следующим образом: 'фон: нет прозрачного прокрутки повтора 0% 0%; background-color: # 3B73B9; ' Я даже перечислил цвет фона: прозрачный как важный. К сожалению, я не могу добавить IF CONDITIONALS. Я довольно сильно модифицирую систему шаблонов сайтов портала. Система «шаблон» довольно строгая, но скучная и стерильная.Я посмотрю, что я могу сделать с javascript, но есть ли какие-либо решения nonIF? – Murphy1976

+0

Кроме того, это может быть даже не проблема CSS IE, у меня есть копия одних и тех же CSS-модов на другом сайте ... тот же CSS, тот же javascript, тот же jQuery и таблицы отображаются корректно в IE8. Так что вся моя дезорганизация о том, как IE8 отстой, может быть просто красной селедкой. Тем не менее, я все еще ненавижу IE8. – Murphy1976

1

background-color:transparent должен работать, но он не копает элементы, находящиеся под ним. Если элемент под ним имеет цвет, вы увидите этот цвет.

0

Попробуйте положить: -

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

в верхней части документа (до <HTML> тега). Он исправил эту проблему для меня (и тоже переместил массу вещей! Я ненавижу IE8!).