Я пытаюсь оптимизировать свой виджет календаря. Я хочу заполнить все элементы между selected_first
и button:hover
отдельным цветом (см. Пример кода):
body {
background: #000;
}
div {
counter-reset: btn;
display: flex;
flex-flow: row wrap;
max-width: 200px;
}
button {
flex: 0 0 20%;
display: block;
height: 30px;
border: 0;
background-color: #333;
color: #fff;
border: 1px solid #000;;
}
button:before {
counter-increment: btn;
content: counter(btn);
}
button[value="selected_first"] {
background: green !important;
}
button[value="selected_first"] ~ button, button:hover {
background: blue;
}
button[value="selected_first"] ~ button:hover ~ button {
background: #333;
}
<div>
<button></button>
<button></button>
<button value="selected_first"></button>
<button></button>
<button></button>
<button></button>
<button></button>
<button></button>
<button></button>
<button></button>
</div>
Это работает для меня, когда на кнопку мыши надета кнопка мыши. Но это не работает, когда ни одна из кнопок не зависла. Это должно выглядеть так: ожидаемый результат
, но когда ни одна из кнопок не зависла, у них все равно появляется синий фон.