#css #css-selectors
#css #css-селекторы
Вопрос:
Возможно ли использовать nth-child() для выбора последовательных элементов?
У меня есть упорядоченный список из 24 элементов. Я хочу разделить их на 4 столбца. В настоящее время я делаю это следующим образом:
#location-menu li:nth-child(1),
#location-menu li:nth-child(2),
#location-menu li:nth-child(3),
#location-menu li:nth-child(4) {
margin-left: 0;
}
#location-menu li:nth-child(5),
#location-menu li:nth-child(6),
#location-menu li:nth-child(7),
#location-menu li:nth-child(8) {
margin-left: 100px;
}
Как вы можете видеть, это выйдет из-под контроля с помощью 24-го элемента. Лучше всего было бы использовать столбцы CSS3 для разделения списка на, но важно, чтобы этот сайт работал в IE8.
Я надеялся на что-то вроде этого:
#location-menu li:nth-child(1-4) {
margin-left: 0;
}
#location-menu li:nth-child(5-8) {
margin-left: 0;
}
Спасибо за помощь!
Комментарии:
1. Но IE8 также не поддерживает
:nth-child()
…2. Я бы пожертвовал немного семантичностью в своей разметке и разделил каждый столбец на его собственный ul / ol.
3. можете ли вы показать jsfiddle для лучшего понимания того, что вы хотите
4. Это похоже на приемлемое использование таблицы…
Ответ №1:
Попробуйте это
#location-menu li:nth-child(n 0) { margin-left: 0; }
#location-menu li:nth-child(n 5) { margin-left: 100px; }
#location-menu li:nth-child(n 9) { margin-left: 200px; }
#location-menu li:nth-child(n 13) { margin-left: 300px; }
/* and so on */
Комментарии:
1. 1, потому что это правильно, но если только OP не нашел способ заставить его работать в IE8…
2. Я пометил это как правильное. Я использовал его в сочетании с code.google.com/p/ie7-js и это должно работать в IE8.
3. Также:
#location-menu li:nth-child(n 0)
может быть упрощен до#location-menu li
или#location-menu li:nth-child(n)
, если вам нужны согласованные значения специфичности.
Ответ №2:
Возможно, это может вам помочь:
#location-menu li:nth-child(4n 0){
margin-left: 0;
}
#location-menu li:nth-child(4n 1){
margin-left: 100px;
}
...
но он будет отображать элементы по строкам, а не по столбцам…