Ответ 1
В то время как фактический родительский селектор невозможен с помощью CSS, вы можете "взломать" его для своего случая, используя дополнительные элементы и позиционирование.
Вам нужно изменить фон, основываясь на том, какой элемент завис, - хорошо! Добавьте псевдоэлементы (или обычные элементы, если вам нужна поддержка IE) и поместите их над родителем, используя абсолютное позиционирование и положительный z-index
:
#buttonBox {
position: relative;
z-index: 1;
}
#buttonBox > div:before {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
}
Те позиционированные элементы должны иметь отрицательный z-index
, поэтому они будут помещены под любой другой контент, но поверх фона родительского элемента.
Таким образом, вы можете добавить такие правила, как
#schedBox:hover:before { background: lime; }
#transBox:hover:before { background: red; }
#destBox:hover:before { background: orange; }
#inspirBox:hover:before { background: yellow; }
И псевдо-фон родителя изменился бы на hover!
Единственное, что нужно знать, это не должно быть элементов с нестатической позицией между родительским элементом и элементами с ролью фона.