Пожалуйста, проверьте это первым, чтобы понять вопрос: http://jsfiddle.net/830b4rLw/3/Изменение цвета DIV, который находится за пределами родительского DIV в DIV, который должен вызвать действие
HTML:
<div id="nav">
<div id="box1"></div>
<div id="box2"></div>
</div>
<div id="header"></div>
CSS:
body {
background-color: #606;
}
#nav {
background-color: #f00;
height: 50px;
width: 100%;
}
#header {
height: 300px;
width: 100%;
background-color: #00f;
}
#box1 {
height: 30px;
width: 20px;
float: left;
background-color: #0f0;
}
#box2 {
height: 30px;
width: 50px;
background-color: #000;
float: left;
margin-left: 5px;
}
@keyframes a {
0%{}
100% {background-color: #fff;}
}
#box1:hover + #box2{
animation: a 2s;
animation-fill-mode: forwards;
}
На связанном jsfiddle, когда вы наводите флажок1 (зеленая коробка), box2 меняет свой цвет.
Теперь, что я хочу сделать;
Сценарий первого сценария: когда вы наведете поле1, я хочу изменить цвет фона #header (синяя коробка).
Второй регистр secenario, я хочу изменить цвет фона (который на данный момент пурпурный), когда вы наведите # box1.
Так что я прошу здесь, я хочу либо изменить цвет фона div, который не находится рядом с другим, и не имеет одного и того же родителя. И во втором случае, я хочу навести div (то есть внутри другого div), чтобы изменить цвет фона элемента.
Пожалуйста, прочтите: Я не хочу использовать javascript!
Спасибо всем за ответы, любую дополнительную информацию и советы по этому разделу очень приветствуются!
Оба сценария не могут быть выполнены с использованием текущего CSS, поскольку нет такой вещи, как родительский селектор. Вам нужно будет внести изменения в структуру HTML. – CBroe
В основном, что я пытаюсь сделать здесь, у меня есть веб-сайт, который должен изменить цвет темы, нажав на один из полей цвета, которые находятся в nav. И эти изменения цвета происходят вне nav. (элементы после nav). Какую структуру HTML-структуры вы бы предложили? Я много пробовал, и все они потерпели неудачу. – FoxyStyle
За некоторыми исключениями, такими как переключатели и флажки, состояние не может быть изменено только с помощью HTML. Я предлагаю заглянуть в библиотеку jQuery, что делает этот тип вещей простым. – isherwood