Сделайте звездный рейтинг CSS динамическим

Приведенный ниже проект кодового пера состоит из чистого интерфейса css с рейтингом звезд. https://codepen.io/yaworek/pen/JJpEaZ

Ниже приведена часть css:

/***
 *  Simple Pure CSS Star Rating Widget Bootstrap 4 
 * 
 *  www.TheMastercut.co
 *  
 ***/

@import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css);

/* Styling h1 and links
––––––––––––––––––––––––––––––––– */
h1[alt = "Simple"] {color: white;}
a[href], a[href]:hover {color: grey; font-size: 0.5em; text-decoration: none}

.starrating > input {display: none;}  /* Remove radio buttons */

.starrating > label:before { 
  content: "\f005"; /* Star */
  margin: 2px;
  font-size: 2em;
  font-family: FontAwesome;
  display: inline-block; 
  text-shadow: 0px 0px 3px #000;
}

.starrating > label
{
  color: #FFFFFF; /* Start color when not clicked */
}

.starrating > input:checked ~ label
{ color: #ffca08 ; } /* Set yellow color when star checked */

.starrating > input:hover ~ label
{ color: #ffca08 ;  } /* Set yellow color when star hover */

Он использует переключатели и CSS для отображения рейтинга. Я хочу добавить по этому поводу дополнительные наборы оценок. Я хочу добавить дополнительные наборы рейтингов, например 5 наборов рейтингов для 5 книг. Теперь проблема в том, что реализация css сбрасывает выбранный рейтинг для одного набора, выбирая рейтинг для другого набора.

Ниже приведена ссылка на кодовое перо для добавленного мной дополнительного набора рейтингов. Проблема в том, что когда я выбираю рейтинг для второго набора, рейтинг для первого набора удаляется. https://codepen.io/brainyprb/pen/BvoqLE

Решается ли это только с помощью css? или мне придется использовать для этого javascript / jquery?

вы пробовали использовать флажок вместо переключателей? иначе измените имя = "рейтинг1", а другое - на рейтинг2. codepen.io/anon/pen/PXPyar

vssadineni 13.12.2018 07:48
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
1 856
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

сторона HTML если вы поместите каждый div в другой, он работает!

Ответ принят как подходящий

используйте разные имена для каждого набора звезд, как показано на изображении ниже Например.

<input type = "radio" id = "star5" name = "rating1" value = "5" /><label for = "star5" title = "5 star">5</label>
        <input type = "radio" id = "star4" name = "rating1" value = "4" /><label for = "star4" title = "4 star">4</label>
.................
<input type = "radio" id = "stare" name = "rating" value = "5" /><label for = "stare" title = "5 star">5</label>
        <input type = "radio" id = "stard" name = "rating" value = "4" /><label for = "stard" title = "4 star">4</label>
......................

демонстрация

Другие вопросы по теме