Чтобы расширить некоторые ответы здесь, у вас есть две проблемы:
- Вы хотите стилизовать то, что не первое и не последнее
- Вы хотите, чтобы это работало в IE.
Поэтому я рекомендую двухэтапный подход:
Сначала установите HTML + CSS соответственно
<div id="breadcrumb">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Sports</a></li>
<li><a href="#">Football</a></li>
<li><a href="#">Leagues/a></li>
</ul>
</div>
#breadcrumb li a { /* middle rules here */ }
#breadcrumb li:first-child a { /* first child rules here */ }
#breadcrumb li:last-child a { /* last child rules here */ }
Во-вторых, чтобы исправить для IE,
<div id="breadcrumb">
<ul>
<li class="first-child"><a href="#">Home</a></li>
<li><a href="#">Sports</a></li>
<li><a href="#">Football</a></li>
<li class="last-child"><a href="#">Leagues/a></li>
</ul>
</div>
#breadcrumb li a { /* middle rules here */ }
#breadcrumb li:first-child a { /* first child rules here */ }
#breadcrumb li:last-child a { /* last child rules here */ }
/* IE part */
#breadcrumb li.first-child a { /* first child rules here */ }
#breadcrumb li.last-child a { /* last child rules here */ }
Если вы не можете добавить классы first-child и last-child на сервер (или статически), я бы использовал этот jQuery JS:
$('#breadcrumb li:first-child').addClass('first-child');
$('#breadcrumb li:last-child').addClass('last-child');
Наконец, я бы использовал условные комментарии или какое-либо обнаружение функций (не уверен, что обнаружение функций будет работать), чтобы гарантировать, что только браузеры, нуждающиеся в исправлении, получают первое / последнее исправление. Вы можете создать div вне экрана и посмотреть, будут ли работать первые / последние правила.
Обратите внимание, что код jQuery можно легко адаптировать, если вы часто используете first-child / last-child, вы можете добавить эти классы по всему DOM в две строки.
Редактировать Я протестировал свое решение и обнаружил, что IE8 не может анализировать правила CSS, если у вас есть: last-child в списке правил, разделенных запятыми, поэтому, к сожалению, вам нужно продублировать правила для IE , Однако это облегчает удаление этой части базы кода, если вы больше не заботитесь о поддержке IE8 (вздох ... один день).