Могу ли я переопределить таблицу стилей css для td с помощью bgcolor?

Мне нужно исправить сайт, для которого установлен стиль по умолчанию для TD:

#cmsContent table td {
    background-color: #d7d7d9;
}

однако клиент, используя редактор CMS, хочет вставить некоторый HTML-код, созданный им в dreamweaver, чтобы установить фон некоторых tds на кучу разных цветов, например:

<td bgcolor="#669900">

(это небольшой кусок огромного уродливого фрагмента html, сгенерированного Dreamweaver, который они добавили в CMS, много tds с большим количеством цветов)

однако стиль, установленный в таблице стилей, делает все фоны серыми.

Мне интересно, есть ли способ «отменить» стиль по умолчанию, установленный в таблице #cmsContent td, и позволить показать bgColor для td. Я надеюсь, что смогу обернуть эту таблицу в div с классом, который отменит цвет фона # d7d7d9 и позволит показать bgcolor.

<div class='overrideTDColor'><table>...<td bgcolor="#669900"> .... etc

а затем в моей таблице стилей

#cmsContent .overrideTDColor table td {
background-color: ?????
}

Можно ли сделать что-то подобное? Помните, что каждый TD в таблице клиентов имеет свой цвет, поэтому я не могу просто установить какой-то конкретный цвет для переопределения.

Любые идеи, кроме как переписать html Dreamweaver, чтобы они использовали style="" вместо bgcolor="" в tds?


person Karen    schedule 12.03.2013    source источник
comment
Связано: Стиль ‹img› для чтения размеров из его атрибутов   -  person BoltClock    schedule 12.03.2013
comment
Как насчет повторения элементов td в javascript и доступа к их свойству bgcolor? Затем вы можете присвоить это значение свойству style.background-color элемента.   -  person deau    schedule 12.03.2013
comment
BoltClock именно то, что работает - спасибо!   -  person Karen    schedule 12.03.2013


Ответы (1)


Нет, если есть стиль background-color, применяемый к td, то он всегда будет иметь приоритет над атрибутом bgcolor, и вы не сможете использовать CSS для отмены этого стиля, чтобы заставить браузер использовать атрибут HTML. Вам потребуется либо жестко закодировать одно и то же значение в HTML в новое правило CSS для каждого элемента td, либо использовать JavaScript для чтения таблицы стилей и удаления правила background-color.

person BoltClock    schedule 12.03.2013
comment
BoltClock - ваш комментарий к моему вопросу - это решение, которое работает лучше всего и проще всего - я изменил свой стиль на это, и все отлично работает: #cmtContent table td:not([bgcolor]) { background-color: #d7d7d9; } - person Karen; 12.03.2013