Popoff
popoff.donetsk.ua
Игнорируются стили при использовании одинаковых значений атрибута id в IE
Есть такая такой HTML:
В IЕ 6.0 строка 1 отображается на белом фоне, а строка 2 - на сером.
Если таблицу стилей записать так (при нажатии "сохранить как - страница целиком" IE автоматом преобразует таблицу стилей таким способом):
то строка 2 отобразится на белом фоне, а строка 1 - на сером.
Фишка касается только 6 версии IE. В IE5, в опере и мозиле во всех случаях обе строки - серые.
Если кого интересует исходная задача, то она состояла в том, что я хотел сделать таблицу <table>, у которой пары строк при помощи таблицы стилей раскрашены разными цветами, например, 1 и 2 строки - тёмные, 3 и 4 - светлые, 5,6 - тёмные, 7-8 - светлые и т.п. Но при этом я хотел использовать также и возможность использования подклассов, которые были бы одинаковые, не зависимо от цвета строки. То есть, записать в таблице стилей примерно так:
.a#dark { background-color:#dddddd }
.a#light { background-color:#eeeeee }
.a .d { font-weight:bold }
Хотелось просто избежать повторов, подобного такому:
.a-dark { background-color:#dddddd }
.a-light { background-color:#eeeeee }
.a-dark .d,.a-light .d { font-weight:bold }
так как подклассов для класса .a - много, а не только один .d, да и иерархия у меня не двухуровневая.
Собственно, вопроса тут нету, так как решение, в общем-то очевидно - не использовать идентификаторы, а ввести дополнительный класс. Это, может, не очень красиво, зато, видимо, более универсально. Это я сюда запостил, потому что подумал, что, может, кому-нибудь будет интересно знать, что не всё там просто с этими идентификаторами и без особой надобности их лучше не использовать в таблицах стилей.
Хотя нет, есть вопрос. Это у всех так или, может, только у меня? %)
Есть такая такой HTML:
PHP:
<html>
<head>
<style>
.a#c, .b#c {
background-color: #eeeeee
}
</style>
</head>
<body>
<div class="a" id="c">
1
</div>
<div class="b" id="c">
2
</div>
</body>
</html>
Если таблицу стилей записать так (при нажатии "сохранить как - страница целиком" IE автоматом преобразует таблицу стилей таким способом):
PHP:
.a#c {
background-color: #eeeeee
}
.b#c {
background-color: #eeeeee
}
Фишка касается только 6 версии IE. В IE5, в опере и мозиле во всех случаях обе строки - серые.
Если кого интересует исходная задача, то она состояла в том, что я хотел сделать таблицу <table>, у которой пары строк при помощи таблицы стилей раскрашены разными цветами, например, 1 и 2 строки - тёмные, 3 и 4 - светлые, 5,6 - тёмные, 7-8 - светлые и т.п. Но при этом я хотел использовать также и возможность использования подклассов, которые были бы одинаковые, не зависимо от цвета строки. То есть, записать в таблице стилей примерно так:
.a#dark { background-color:#dddddd }
.a#light { background-color:#eeeeee }
.a .d { font-weight:bold }
Хотелось просто избежать повторов, подобного такому:
.a-dark { background-color:#dddddd }
.a-light { background-color:#eeeeee }
.a-dark .d,.a-light .d { font-weight:bold }
так как подклассов для класса .a - много, а не только один .d, да и иерархия у меня не двухуровневая.
Собственно, вопроса тут нету, так как решение, в общем-то очевидно - не использовать идентификаторы, а ввести дополнительный класс. Это, может, не очень красиво, зато, видимо, более универсально. Это я сюда запостил, потому что подумал, что, может, кому-нибудь будет интересно знать, что не всё там просто с этими идентификаторами и без особой надобности их лучше не использовать в таблицах стилей.
Хотя нет, есть вопрос. Это у всех так или, может, только у меня? %)