2015-04-15 2 views
0

У меня есть веб-сайт со списком <div> s. <div> имеют альтернативный цвет фона на основе :nth-child(odd) и :nth-child(even). Никаких проблем с этим.Mimic alternate row in html

Что мне нужно - это сделать альтернативный цвет фона даже после последнего div. Как работает окно Finder Mac OS (это вдохновение для клиента).

Как это сделать? Есть ли какой-либо иной способ, кроме неуклюжих «создания пустых div»?

изображение папки макинтоша в списке:

enter image description here

+0

Можете ли вы опубликовать полный пример кода, показывающий, что вы пробовали? Я не понимаю раздел «после последнего div» вашего вопроса. – j08691

+0

Почему бы не просто повторить фон для элемента, содержащего все ваши div? –

+0

@ j08691 Я предполагаю, что он хочет, чтобы чередующиеся строки продолжались, даже если нет содержимого. –

ответ

4

Лучше всего было бы использовать фоновое изображение или градиент фона, чтобы получить повторяющийся рисунок в элементе контейнера.

Недостатком было бы то, что чередующиеся разделители имели разные высоты.

Пример (jSFiddle for visual):

#container{ 
    background-image: -webkit-repeating-linear-gradient(90deg, 
    lightgray, 
    lightgray 10px, 
    white 10px, 
    white 20px 
); 
} 

Попробуйте поэкспериментировать с различными единицами (т.е. вместо ЭМ пикселей), и вы должны быть в состоянии достичь чего-то близко к фону Finder. Обратите внимание, что вам, вероятно, потребуется использовать префиксы поставщиков для совместимости браузеров.

+0

Разделы имеют фиксированные высоты. Я новичок в HTML/CSS, поэтому позвольте мне просто уточнить: будет ли фон использоваться на всей странице или сразу после последней строки? Думая об этом с этой точки зрения, я думаю, что фон для всей страницы будет ... – hisc

+0

Если не спросить, не возможно ли это сделать с помощью CSS? CSS-фон? Извините, если я слишком непрофессионал. – hisc

+0

Вы можете так же легко использовать CSS-фоновое изображение с свойством CSS background-repeat: repeat; '. Программа может предложить будущую гибкость, если вы измените размер шрифта или что-то еще, так что вам не нужно воссоздавать фоновое изображение. – Quantastical

-1

Если вы хотите сделать это с помощью CSS, и ваш html-список будет упакован в теги, вы можете присвоить этому тегу свойство фона или фона в классе. (JSFiddle).

HTML

<ul class="list"> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    <li>Item 3</li> 
</ul> 

CSS

li:nth-child(odd) { 
    color: white; 
    list-style: none; 
    background-color: blue; 
    margin-left: -40px; 
} 
li:nth-child(even) { 
    color: white; 
    list-style: none; 
    background-color: gray; 
    margin-left: -40px; 
} 
.list { 
    padding-bottom: 18px; 
    background: gray; 
} 

Если вы список не обернута в теги UL, то вы можете пересмотреть, как вы получили ваш HTML структурированы.

+0

OP уже заявила, что использует ': nth-child (even/odd)', что они хотят сделать, это продолжить этот шаблон даже после того, как список закончен, - пожалуйста, прочитайте вопрос еще раз. –

+0

Я включил код nth-child (четный/нечетный), чтобы помочь отформатировать ответ. Если вы действительно прочитали мой ответ, вы заметили, что нужно указать альтернативный цвет фона в родительском списке. Если вы посмотрите на скрипку, в которую я включил, она отображает то, что было задано. Будучи новым участником этого сайта и не имея достаточного количества комментариев, чтобы прокомментировать вопрос перед ответом, я сделал попытку на самом деле попытаться помочь им получить рабочий ответ на основе приведенной информации. Спасибо, что предположил, что я слепо написал ответ. – awhitson

+0

Я ничего не предполагал, и я не думаю, что есть необходимость в сарказме. Если вы посмотрите на скриншот OP, вы можете четко видеть, что четный/нечетный шаблон продолжается после завершения списка. Извините, если вам не нравится мой комментарий, это не была личная атака, но она не отвечает на вопрос правильно. –

 Смежные вопросы

  • Нет связанных вопросов^_^