2015-03-19 9 views
0

Я хочу иметь ряд элементов, и я хочу иметь инкрементные цвета фона, но я также хочу не жестко его кодировать, чтобы можно было в будущем расширять.CSS3 меняет цвет фона

<div class="container"> 
    <div>one</div> 
    <div>two</div> 
    <div>three</div> 
</div> 

я мог бы сделать что-то вроде этого:

.container div:nth-child(0) { 
    background-color: #0000ff; 
} 
.container div:nth-child(1) { 
    background-color: #000066; 
} 
.container div:nth-child(2) { 
    background-color: #000000; 
} 

я предпочел бы сделать это с одним правилом, что позволило бы более лаконичный код, а также позволяет получить дополнительную расширяемость (для, скажем, 6 элементов). Возможно ли это? Я знаю, что что-то вроде этого довольно просто с JQuery, но я предпочел бы просто использовать CSS, если это возможно.

+2

Я бы рекомендовал использовать CSS препроцессор как SASS или LESS. Это идеально подходит для таких случаев использования;) – MMachinegun

+0

Хотя это не решает вашу проблему напрямую, вы можете достичь того, о чем говорите, используя препроцессор, такой как [LESS] (http://lesscss.org/), используя цикл , Проверьте этот ответ http://stackoverflow.com/questions/21440789/loop-through-array-of-values-in -less. – Rorschach120

+0

Я слышал о МЕНЬШЕ, хотя я никогда не использовал его. Я обязательно проверю это. – polson136

ответ

1

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

.container div { 
 
    background-image: linear-gradient(yellow, blue); 
 
    background-size: 20000px 20000px; 
 
    } 
 

 
.container div:nth-child(1) { 
 
    background-position: 0% 0%; 
 
} 
 

 
.container div:nth-child(2) { 
 
    background-position: 0% 30%; 
 
} 
 

 
.container div:nth-child(3) { 
 
    background-position: 0% 100%; 
 
}
<div class="container"> 
 
    <div>one</div> 
 
    <div>two</div> 
 
    <div>three</div> 
 
</div>

+0

Интересные концепции. Поддерживается ли это повсеместно? В моем браузере (Firefox) все 3 окна выглядят одинаково. – polson136

+0

Произошла ошибка, которая затронула FF. Исправленный ! – vals

+0

Это определенно очень полезный трюк, который я буду иметь в виду. – polson136

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