#html #css
#HTML #CSS
Вопрос:
Я хочу знать, можно ли щелкнуть по элементу, а затем изменить другой элемент только с помощью Html и CSS, и если да, то как.
что-то вроде этого ( кстати, этот код не работает ) :
a:active div{ background-color : blue; }
Комментарии:
1. итак, вы говорите, что у вас есть два дива, и когда вы нажмете div1, div2 изменит цвет фона?
2. Это будет зависеть от взаимного расположения/взаимосвязи между двумя элементами. Пожалуйста, вставьте свой HTML-код в вопрос, чтобы мы могли увидеть структуру. Если два элемента не имеют никакого отношения, то это, вероятно, невозможно, но это опять же зависит от того, какой стиль вы хотите применить, поэтому, пожалуйста, будьте как можно более конкретны в этом (т. Е. Это просто цвет фона, который должен измениться?).
Ответ №1:
Без Javascript ваши возможности довольно ограничены. Вы должны найти способ переключать состояние одним щелчком мыши и иметь возможность выражать эти состояния в CSS.
Какой-то вариант может быть следующим:
- использование (скрыто?) радиокнопки или флажки и использование их
:checked
псевдокласса в CSS - использование якорей и их псевдоклассов (как вы уже пытались сделать)
Проблема здесь в том, что вам нужно поместить все свое динамическое содержимое (то, что вы показываете/скрываете при нажатии) внутри или рядом с теми элементами переключения, которые могут быть непрактичными.
Мой любимый — :target
псевдокласс. Когда вы откроете URL-адрес «https://something.com#foobar» элемент с идентификатором «foobar» является текущей целью (если она существует). Одним из ограничений этого является то, что для каждого документа существует только одна цель. Вы можете управлять целью, нажимая на якоря, подобные этому:
.dynamic-content { display: none; } #first:target, #second:target { display: block; }
lt;divgt; lt;div id="first" class="dynamic-content"gt; First dynamic content lt;a href="#"gt;Hidelt;/agt; lt;/divgt; lt;div id="second" class="dynamic-content"gt; Second dynamic content lt;a href="#"gt;Hidelt;/agt; lt;/divgt; lt;/divgt; lt;a href="#first"gt;Show firstlt;/agt; lt;a href="#second"gt;Show secondlt;/agt;
Ответ №2:
Один из способов ,который я использую :псевдокласс фокусировки. div:focus a {}