Псевдокласс :first-child для ИЕ6

Псевдокласс :first-child для ИЕ6 Дата публикации: 09.08.2009 ...

Дата публикации: 09.08.2009

Проблема

IE6 не понимает псевдокласс first-child.

Решение — используем expression

Суть метода — скрипт при загрузке страницы, находит необходимый (первый) элемент и присваивает ему класс с необходимым оформлением.


<ul>
<li>Пункт первый</li>
<li>Пункт второй</li>
<li>Пункт третий</li>
</ul>

CSS:


li {
border-left: 1px solid #000;
display: inline;
margin-right: 10px;
}
li:first-child
, li.first-child{
border: none;
}
* html li {
z-index: expression( /* оптимизированный expression, который сработает только при загрузке страницы */
runtimeStyle.zIndex = 1,
this == parentNode.firstChild ? (className += " first-child") : 0 /* добавляем нужный класс первому элементу */
)
}

Update! Иногда запись для ИЕ нужно изменить таким образом:


* html li {
z-index: expression(
runtimeStyle.zIndex = 1,
parentNode.firstChild ? (className += " first-child") : 0
)
}

Плюсы метода:

  • достаточно прост и гибок
  • оптимизированный expression отработает только один раз при загрузке страницы
  • дает возможность оставить более чистый (без множества классов) код программистам и поисковым роботам

Недостатки:

  • так же придется дополнительно подумать с динамически созданными элементами
  • не проходит валидацию
Показать комментарии

Смотрите также в этом разделе

Смежные материалы, которые могут быть вам полезны

  • HasLayout | знакомимся, управляем, применяем
  • Max-width для IE6 | описание 2-х способов
  • Min-height для IE6 | без использования expression
  • Min-width для IE6 | описание 4-х способов
  • Min-width и max-width одновременно для IE6 | описание 2-х способов
  • PNG и прозрачность в IE6 | 4 метода | обход проблем
  • position:fixed для IE6 | описание 4-х способов
  • Блочная модель в IE6 | решаем проблему с размерами блоков для IE6
  • Высота блока 1px для IE6 | решаем проблемы с блоками небольшой высоты
  • Для IE6 устраняем flickering — обращение к серверу при наведении на элемент
  • Дублирование символов в IE6
  • Дырка под футером при показе блока в IE 6
  • Как перекрыть поверх слоем select в IE6
  • Как перекрыть поверх слоем select в IE6
  • Обрезка контента c отрицательным margin в IE6
  • Отступы плавающих блоков в IE6 | решаем проблему с большим отступом у плавающих блоков
  • Псевдокласс hover в IE 6
  • Селектор потомков > для IE6
  • Селекторы атрибутов [type=…] в ИЕ6
  • Сестринский селектор для IE6
  • Ссылки с вложением
  • Убираем смещение на 1px в IE6 для right:0 и bottom:0