2010-11-23 7 views
1

У меня есть список divs, каждый из которых имеет атрибут 'createdDate', я оцениваю каждый созданный div div, . Я добавляю еще один атрибут 'isNew', если ему меньше 7 дней, установите true, иначе false.Когда CSS разрешается/оценивается?

CSS-код имеет:

div[isNew=true] div.title{ background:red } 

намереваясь установить красный фон, когда менее чем за 7 дней.

с использованием firebug и т. Д. Инструменты Dev - показывает фон как заданный красный, по правилу сопоставления.

Браузер не отображает заголовок div красным цветом.

есть способ подтолкнуть оценку css, чтобы перерисовать? или лучший способ?

+2

Лучший способ? Почему бы не создавать классы CSS для каждого конкретного правила и, используя ваш серверный язык выбора, добавьте соответствующий класс в div. –

ответ

1

Поскольку этот фрагмент http://jsfiddle.net/fcalderan/Gh7Ud/ работает как ожидалось, я хотел бы предложить, чтобы проверить разметку и остальные правила CSS , возможно, вы переопределяете после этого стиля где-то

Примечание: для вашего кода требуется атрибут 'isNew': если вы контролируете код html, лучше, если вы сделаете это futur e-proof, изменяя его как 'data-isNew'

Как предложил Златев, создавая класс ad hoc, это еще одно решение, и это обеспечит скрещивание, потому что самый старый браузер не распознает селектор атрибутов CSS. BTW Я предлагаю не использовать класс .red, потому что он будет слишком привязан к стилю элемента (что, если вы измените цвет?), Поэтому лучше предпочитаете семантический класс, например .newtitle

+0

прохладный инструмент (jsfiddle) не видно это один перед тем. Я изменил ваш образец, немного, поэтому поведение следует за тем, что я пытался сделать. если вы запустите его сейчас, заголовок не станет красным. Но инспектор говорит о своем красном! – Adrian

+0

http://jsfiddle.net/Gh7Ud/2/ - ссылка на мои изменения – Adrian

+0

Adrian ваш код работает как и ожидалось (я использую FF3.6.12), но он работает только с использованием этой строки javascript. заголовок черный с фоном красного цвета, как вы указали. –

0

Просто создайте новое правило:

.red { background: red; } // to be safe and sure, you can make it important 

применить его с помощью JQuery, когда это необходимо .addClass() или сформировать бэкенд

+0

да, я делаю это для этого. Я собирался сохранить код css и код отдельно – Adrian

+0

За исключением того, что в качестве имени класса не используется 'red', что происходит, когда вы хотите изменить его на синий? – roryf

Смежные вопросы