Вопрос по css3, css-selectors, internet-explorer-8, css, html – li: последний ребенок не работает в IE8

3

Ниже моя структура HTML

<div class="footerMenu">
   <ul>
     <li>Home</li>
     <li>About</li>
     <li>Feedback</li>
     <li>Contact us</li>        
   </ul>            
</div>

Но

.footerMenu li:last-child { } 

Селектор не работает в IE8. Ноhttp://msdn.microsoft.com/en-us/library/cc351024%28VS.85%29.aspx говорит, что псевдо-селектор поддерживается. Любая помощь в этом!

Я на 99% уверен, что это не поддерживается Undefined
Вы пробовали .footerMenu li: {что-то радикальное; } просто чтобы посмотреть, много ли это работает? Sachin Kainth
Нет, на самом деле это не так. Там прямо сказано, что он поддерживается в IE9 и более поздних версиях. Ry-♦
да просто .footerMenu li {} работает user1184100

Ваш Ответ

7   ответов
0

Попробуйте использовать что-то вроде этого:

.footerMenu li {background-color: expression(this.previousSibling==null?'red':'green');}
2

Чтобы построить ответы других ребят, альтернативой может быть использование javascript для заполнения пробелов, selectivizr - хороший пример добавления поддержки last-child.

http://selectivizr.com/

1

Где ты это прочитал?:first-child поддерживается обратно в IE7, но:last-child это IE9 и позже.

No, it doesn't.

(Заголовки сдвинуты вниз для вашего удобства)

извините за мою ошибку .. я упустил это из виду! user1184100
27

Вы прочитали это неправильно. Это говорит о том, что этоnot поддерживается в IE8:

Если вы смотрели на:first-child, которая имеет поддержку в IE7 и IE8, и думает, что то же самое относится к:last-child... сюрприз! Это не так.

:first-child это селектор CSS2, но:last-child был представлен только в CSS3, поэтому, поскольку Microsoft стремилась обеспечить соответствие CSS2.1 и IE8, они, вероятно, не стали беспокоиться о:last-child до пост-IE8.

Если вы знаете, у вас будет только четыреli элементы, то вы должны быть в состоянии использовать соседние селекторы, чтобы достичь четвертогоli:

.footerMenu li:first-child + li + li + li
Кстати, какой столdoes ошибкой является поддержка IE9 для двойной записи двоеточия CSS3 для псевдоэлементов CSS1 / 2 (хотя, как ни странно, это правильно для псевдоэлементов CSS3):stackoverflow.com/questions/7157405/…
да, я предположил, что, так как первый был там, даже последний также будет поддерживаться. Спасибо за информацию. user1184100
0

Другие ответы верны: IE 8 не поддерживает last-child. Однако, чтобы решить вашу конкретную проблему, вы можете либо а) вручную добавить класс к последнему<li> или б) так как это меню, и оно, вероятно, будет содержать ссылки внутри, нацелите последнюю ссылку с помощью селектора атрибута, который работает в IE8. Что-то вроде

.footermenu a[href="contact.html"] { ... }
0

Я знаю его старый, но ... есть простой способ сделать это:

Просто в li вы хотите, чтобы изменения сделали это:

<li style="yourstyle;">...</li>

1

Ссылка, которую вы указали, показывает, что она не поддерживается только для IE8 ... IE9 +. Поиск в Google last-child IE8 вызывает целый ряд похожих запросов.

Похожие вопросы