多星评同一页(Multiple Star Review on Same Page)

2019-10-23 11:17发布

我有一个多页表格,并在页面上的一个我有一个明星复审申请,因此用户可以在1至5星之间投票。 我把它然而在同一页,我需要这个多次(即不同的东西,审查)在伟大的工作。

我已经尝试了一些东西; 改变类的“明星”和“明星”,但也允许多个收视率 - 他们都触发回第一个(也就是说,如果你选择在第二2星级也默认第一选择到2星,或只选择首先选择2个星)。 有任何想法吗?

HTML代码:

<div class="stars">
    <input type="radio" name="star" class="star-1" id="star-1" />
    <label class="star-1" for="star-1">1</label>
    <input type="radio" name="star" class="star-2" id="star-2" />
    <label class="star-2" for="star-2">2</label>
    <input type="radio" name="star" class="star-3" id="star-3" />
    <label class="star-3" for="star-3">3</label>
    <input type="radio" name="star" class="star-4" id="star-4" />
    <label class="star-4" for="star-4">4</label>
    <input type="radio" name="star" class="star-5" id="star-5" />
    <label class="star-5" for="star-5">5</label>
    <span></span>
</div>

CSS:

form .stars {
  background: url("stars.png") repeat-x 0 0;
  width: 150px;
  margin: 0 auto;
}

form .stars input[type="radio"] {
  position: absolute;
  opacity: 0;
  filter: alpha(opacity=0);
}
form .stars input[type="radio"].star-5:checked ~ span {
  width: 100%;
}
form .stars input[type="radio"].star-4:checked ~ span {
  width: 80%;
}
form .stars input[type="radio"].star-3:checked ~ span {
  width: 60%;
}
form .stars input[type="radio"].star-2:checked ~ span {
  width: 40%;
}
form .stars input[type="radio"].star-1:checked ~ span {
  width: 20%;
}
form .stars label {
  display: block;
  width: 30px;
  height: 30px;
  margin: 0!important;
  padding: 0!important;
  text-indent: -999em;
  float: left;
  position: relative;
  z-index: 10;
  background: transparent!important;
  cursor: pointer;
}
form .stars label:hover ~ span {
  background-position: 0 -30px;
}
form .stars label.star-5:hover ~ span {
  width: 100% !important;
}
form .stars label.star-4:hover ~ span {
  width: 80% !important;
}
form .stars label.star-3:hover ~ span {
  width: 60% !important;
}
form .stars label.star-2:hover ~ span {
  width: 40% !important;
}
form .stars label.star-1:hover ~ span {
  width: 20% !important;
}
form .stars span {
  display: block;
  width: 0;
  position: relative;
  top: 0;
  left: 0;
  height: 30px;
  background: url("stars.png") repeat-x 0 -60px;
  -webkit-transition: -webkit-width 0.5s;
  -moz-transition: -moz-width 0.5s;
  -ms-transition: -ms-width 0.5s;
  -o-transition: -o-width 0.5s;
  transition: width 0.5s;
}

Answer 1:

我把它通过改变无线电名称和标识保持独特的工作。

单选按钮按名称,使得每个表示特定形式“可变”的值进行分组。 随着各组代表一个不同的变量,一个产品的评级星,每一组应该有一个独立的名字反映了他们对如追加的产品ID,其产品name="star-123456" 。 你也可以在附加物品形式的列表中选择产品的指标。

ID应该永远是元素中是唯一的。 在这种情况下,无线输入ID应该是标签独有的为属性指向正确的。

下面的代码片段包含两个单选组和唯一ID为每个无线输入唯一的名称。

 form .stars { background: gray; width: 150px; margin: 0 auto; } form .stars input[type="radio"] { position: absolute; opacity: 0; filter: alpha(opacity=0); } form .stars input[type="radio"].star-5:checked ~ span { width: 100%; } form .stars input[type="radio"].star-4:checked ~ span { width: 80%; } form .stars input[type="radio"].star-3:checked ~ span { width: 60%; } form .stars input[type="radio"].star-2:checked ~ span { width: 40%; } form .stars input[type="radio"].star-1:checked ~ span { width: 20%; } form .stars label { display: block; width: 28px; height: 28px; border: 1px solid black; margin: 0!important; padding: 0!important; text-indent: -999em; float: left; position: relative; z-index: 10; background: transparent!important; cursor: pointer; } form .stars label:hover ~ span { background-position: 0 -30px; } form .stars label.star-5:hover ~ span { width: 100% !important; } form .stars label.star-4:hover ~ span { width: 80% !important; } form .stars label.star-3:hover ~ span { width: 60% !important; } form .stars label.star-2:hover ~ span { width: 40% !important; } form .stars label.star-1:hover ~ span { width: 20% !important; } form .stars span { display: block; width: 0; position: relative; top: 0; left: 0; height: 30px; background: red; filter: alpha(opacity=0); -webkit-transition: -webkit-width 0.5s; -moz-transition: -moz-width 0.5s; -ms-transition: -ms-width 0.5s; -o-transition: -o-width 0.5s; transition: width 0.5s; } 
 <form> <div class="stars"> <input type="radio" name="star_a" class="star-1" id="star_a-1" /> <label class="star-1" for="star_a-1">1</label> <input type="radio" name="star_a" class="star-2" id="star_a-2" /> <label class="star-2" for="star_a-2">2</label> <input type="radio" name="star_a" class="star-3" id="star_a-3" /> <label class="star-3" for="star_a-3">3</label> <input type="radio" name="star_a" class="star-4" id="star_a-4" /> <label class="star-4" for="star_a-4">4</label> <input type="radio" name="star_a" class="star-5" id="star_a-5" /> <label class="star-5" for="star_a-5">5</label> <span></span> </div> <div class="stars"> <input type="radio" name="star_b" class="star-1" id="star_b-1" /> <label class="star-1" for="star_b-1">1</label> <input type="radio" name="star_b" class="star-2" id="star_b-2" /> <label class="star-2" for="star_b-2">2</label> <input type="radio" name="star_b" class="star-3" id="star_b-3" /> <label class="star-3" for="star_b-3">3</label> <input type="radio" name="star_b" class="star-4" id="star_b-4" /> <label class="star-4" for="star_b-4">4</label> <input type="radio" name="star_b" class="star-5" id="star_b-5" /> <label class="star-5" for="star_b-5">5</label> <span></span> </div> </form> 



文章来源: Multiple Star Review on Same Page
标签: php html css forms