我有一个多页表格,并在页面上的一个我有一个明星复审申请,因此用户可以在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;
}
我把它通过改变无线电名称和标识保持独特的工作。
单选按钮按名称,使得每个表示特定形式“可变”的值进行分组。 随着各组代表一个不同的变量,一个产品的评级星,每一组应该有一个独立的名字反映了他们对如追加的产品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>