Как заставить ссылки в IE наследовать цвет

Опубликовано: 6 февраля, 2009 | Рубрика: Кодинг | Тэги: , , , | 1 Комментарий »

Сегодня коллега, обратившись ко мне с просьбой помочь, невольно напомнил ещё об одном «закидоне» MS IE. Суть проблемы: по замыслу дизайнера ссылка должна быть того же цвета, что и цвет текста родительского элемента. Обычно это решается просто:

1
2
3
4
5
6
7
8
9
10
......
<style type="text/css">
.block, .block a {color:red}
</style>
 
......
<div class="block">
Блок текста
<a href="#">наша ссылка</a></div>
......

Однако, в данном случае ссылка добавляется в блок динамически, причём на чужой сайт, а значит нет возможности не только как-то явно указать, но даже узнать цвет шрифта.

Простейшее решение, которое сработает во всех нормальных браузерах — указать ссылкам наследовать цвет родительского элемента.

1
2
3
4
5
6
7
8
9
......
<style type="text/css">
.block {color:red}
</style>
 
......
<div class="block">Блок текста на чужом сайте
<a style="color: inherit">наша ссылка</a></div>
......

Однако именно в IE, причём обоих версий (насчёт 8-ой не знаю, не тестировал), такой способ не сработает. И единственное решение, известное мне, это использование «выражений» (expression), для определения цвета родительского блока.

1
2
3
<style type="text/css">
a { color: expression(this.parentNode.currentStyle.color);}
</style>

На мой взгляд, это верх идиотизма использовать javascript для таких целей, но иначе проблему не решить. Ещё раз «спасибо» разработчикам Internet Explorer.

чушьничего интересногомогло быть лучшеочень интересноотлично!
Может вам будет также интересно:

Один комментарий на “Как заставить ссылки в IE наследовать цвет”

  1. 1 Caminante  (6 января, 2012 в 14:56) :

    Огромное спасибо за полезную статью!


Есть мнение? Высказывайтесь!