Как изменять цвет выбранного блока?

Ссылка скопирована
19 марта 2026 1 ответ

Как изменить цвет выбранного блока, чтобы после клика на блок менялся цвет всего блока?

Я пытался сделать через .option input:checked + span но это меняет только цвет текста, а не блока

Как изменять цвет выбранного блока?

Как изменять цвет выбранного блока?

Код

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Тестовая страница</title>     <link rel="stylesheet" href="styles.css">     <style>         body {             font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;             background-color: #f8f9fa;             margin: 0;             display: flex;             align-items: center;             justify-content: center;             min-height: 100vh;         }          .quiz-container {             background-color: #ffffff;             border-radius: 8px;             box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);             padding: 30px;             width: 400px;             text-align: center;         }          .question {             font-size: 20px;             margin-bottom: 20px;             color: #333333;         }          .options {             display: flex;             flex-direction: column;             align-items: center;         }          .option {             margin: 10px 0;             padding: 15px;             border: 1px solid #007bff;             border-radius: 5px;             width: 100%;             box-sizing: border-box;             cursor: pointer;             transition: background-color 0.3s;             display: flex;             align-items: center;         }          .option span {             font-size: 16px;             color: #555555;             flex-grow: 1;             padding-left: 10px;             cursor: pointer;         }          .option:hover {             background-color: #e6f7ff;         }          .option input {             display: none; /* Скрыть стандартные радиокнопки */         }          .option input:checked + span{             font-weight: bold;             background-color: #33ff52;         }             .submit-btn {             margin-top: 20px;             padding: 10px 20px;             font-size: 18px;             background-color: #007bff;             color: #ffffff;             border: none;             border-radius: 5px;             cursor: pointer;         }          .submit-btn:hover {             background-color: #0056b3;         }     </style> </head> <body>  <div class="quiz-container">     <div class="question" id="question">Какой язык программирования вы изучаете?</div>      <div class="options">         <label class="option">             <input type="radio" name="answer" value="html">             <span>HTML</span>         </label>         <label class="option">             <input type="radio" name="answer" value="css">             <span>CSS</span>         </label>         <label class="option">             <input type="radio" name="answer" value="js">             <span>JavaScript</span>         </label>     </div>      <button class="submit-btn" onclick="checkAnswer()">Проверить ответ</button> </div>  <script>     function checkAnswer() {     const answerElements = document.getElementsByName('answer');     let selectedAnswer = null;      for (const element of answerElements) {         if (element.checked) {             selectedAnswer = element.value;             break;         }     }      if (selectedAnswer === 'js') {         alert('Правильный ответ! Вы изучаете JavaScript.' );     } else {         alert(selectedAnswer);     } } </script>  </body> </html>

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Тестовая страница</title> <link rel="stylesheet" href="styles.css"> <style> body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #f8f9fa; margin: 0; display: flex; align-items: center; justify-content: center; min-height: 100vh; } .quiz-container { background-color: #ffffff; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); padding: 30px; width: 400px; text-align: center; } .question { font-size: 20px; margin-bottom: 20px; color: #333333; } .options { display: flex; flex-direction: column; align-items: center; } .option { margin: 10px 0; padding: 15px; border: 1px solid #007bff; border-radius: 5px; width: 100%; box-sizing: border-box; cursor: pointer; transition: background-color 0.3s; display: flex; align-items: center; } .option span { font-size: 16px; color: #555555; flex-grow: 1; padding-left: 10px; cursor: pointer; } .option:hover { background-color: #e6f7ff; } .option input { display: none; /* Скрыть стандартные радиокнопки */ } .option input:checked + span{ font-weight: bold; background-color: #33ff52; } .submit-btn { margin-top: 20px; padding: 10px 20px; font-size: 18px; background-color: #007bff; color: #ffffff; border: none; border-radius: 5px; cursor: pointer; } .submit-btn:hover { background-color: #0056b3; } </style> </head> <body> <div class="quiz-container"> <div class="question" id="question">Какой язык программирования вы изучаете?</div> <div class="options"> <label class="option"> <input type="radio" name="answer" value="html"> <span>HTML</span> </label> <label class="option"> <input type="radio" name="answer" value="css"> <span>CSS</span> </label> <label class="option"> <input type="radio" name="answer" value="js"> <span>JavaScript</span> </label> </div> <button class="submit-btn" onclick="checkAnswer()">Проверить ответ</button> </div> <script> function checkAnswer() { const answerElements = document.getElementsByName('answer'); let selectedAnswer = null; for (const element of answerElements) { if (element.checked) { selectedAnswer = element.value; break; } } if (selectedAnswer === 'js') { alert('Правильный ответ! Вы изучаете JavaScript.' ); } else { alert(selectedAnswer); } } </script> </body> </html>

Дополнительно:

Вариант 1: при помощи :has.

.option:has(input:checked) {     background-color: peachpuff; }

.option:has(input:checked) { background-color: peachpuff; }

Вариант 2: при помощи JS и CSS:

.option.active {     background-color: peachpuff; }

.option.active { background-color: peachpuff; }

const optionsContainer = document.querySelector('.options'); const options = optionsContainer.querySelectorAll('.option');  optionsContainer.addEventListener('click', (event) => {   const option = event.target.closest('.option');    if (option !== null) {     options.forEach((entry) => entry.classList.remove('active'));     option.classList.add('active');   } });

const optionsContainer = document.querySelector('.options'); const options = optionsContainer.querySelectorAll('.option'); optionsContainer.addEventListener('click', (event) => { const option = event.target.closest('.option'); if (option !== null) { options.forEach((entry) => entry.classList.remove('active')); option.classList.add('active'); } });

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Роман IT Ответ

Для изменения цвета выбранного блока на веб-странице можно использовать различные методы, в зависимости от того, какой именно блок вы хотите стилизовать. Вот несколько способов, как можно это сделать:

1. Используя CSS:
Для изменения цвета фона выбранного блока можно использовать свойство background-color в CSS. Например, если у вас есть блок с классом "selected-block", вы можете применить следующий стиль:

.selected-block {
    background-color: #ff0000; /* красный цвет */
}

.selected-block { background-color: #ff0000; /* красный цвет */ }

2. Используя JavaScript:
Если вы хотите изменить цвет блока динамически, то можно использовать JavaScript. Например, для изменения цвета фона выбранного блока по клику мыши можно использовать следующий код:

document.getElementById('selected-block').style.backgroundColor = '#ff0000'; // красный цвет

document.getElementById('selected-block').style.backgroundColor = '#ff0000'; // красный цвет

3. Используя jQuery:
Если вы работаете с jQuery, то можно использовать метод .css() для изменения стилей выбранного блока. Пример:

$('#selected-block').css('background-color', '#ff0000'); // красный цвет

$('#selected-block').css('background-color', '#ff0000'); // красный цвет

4. Используя атрибут style в HTML:
Вы также можете задать стили непосредственно в HTML с помощью атрибута style. Например:

<div id="selected-block" style="background-color: #ff0000">Содержимое блока</div>

<div id="selected-block" style="background-color: #ff0000">Содержимое блока</div>

Надеюсь, эти примеры помогут вам изменить цвет выбранного блока на вашей веб-странице. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно