Я хочу выбрать теги элементов в html с помощью CSS. Например, как я могу выбрать второй li a Plus после этого в одном UL. Я хочу установить left-margin для второго li плюс после этого. Сначала <li><a>
не перемещаются вправо и не исправляют, а другие перемещаются вправо с левым краем
<ul style="list-style:none;">
<li>
<a href="#">Contact Us</a>
</li>
<li>
<a href="#">Home</a>
</li>
<li>
<a href="#">Project</a>
</li>
<li>
<a href="#">aboutUs</a>
</li>
</ul>
ContactUs Home Project aboutUs Я хочу сохранить margin-left от ContactUs и не идти вправо, но установить margin-left после второго li с 50px для home + project + aboutUs;
Это должно сделать это для вас: http://jsfiddle.net/MFtU2/1/
ul > li:not(:first-child) {
margin-left: 50px;
}
Если вы хотите поддерживать устаревшие браузеры, которые не поддерживают селектор CSS3 :not()
, лучше всего выбрать первый li
и дать ему margin:0;
при 50px
что все li
имеют 50px
: http://jsfiddle.net/MFtU2/3/
ul.ie8safe > li:first-child {
margin-left: 0;
}
ul.ie8safe > li {
margin-left: 50px;
}
РЕДАКТИРОВАТЬ:
Учитывая, что ОП немного изменил параметры вопроса, я решил, что обновляю свой ответ. В дополнение к желанию настроить таргетинг на все li
кроме первого, вы также хотите, чтобы они отображались на одной горизонтальной плоскости. Для этого вам нужно, чтобы каждый li
занимал минимальное пространство, поскольку по умолчанию каждый li
будет занимать всю ширину содержащего ul
. Есть несколько способов сделать это, но я предпочитаю использовать float: left;
ul > li {
float: left
}
ul > li:not(:first-child) {
margin-left: 50px;
}
Я прикрепил обновленную скрипту, чтобы показать, как это будет выглядеть. Обратите внимание, что этот метод будет работать как в старых браузерах, так и в новых.
:not()
не поддерживается в IE8 или ниже, если проблема совместимости с более старыми браузерами.
margin-left: 50px;
всех тегов li
с помощью margin-left: 50px;
а затем специально нацелиться на первый li
. Я обновил свой ответ, чтобы включить эту информацию.
:first-child
.