悬停在星空上时星级评定css问题

时间:2014-11-22 16:43:04

标签: html css hover

当我徘徊在一些星星上时,我有一个奇怪的问题。明星效应应该正常工作,当用户徘徊第二颗星时,第一颗星也应该被填充,当用户在第三颗星上徘徊时,之前的星也应该被填充。

的jsfiddle:

http://jsfiddle.net/tkh2czee/

HTML

<ul class="star-rating">
    <li><a id="1" title="1 star out of 5" class="one-star starz">1</a></li>
    <li><a id="2" title="2 stars out of 5" class="two-stars starz">2</a></li>
    <li><a id="3" title="3 stars out of 5" class="three-stars starz">3</a></li>
    <li><a id="4" title="4 stars out of 5" class="four-stars starz">4</a></li>
    <li><a id="5" title="5 stars out of 5" class="five-stars starz">5</a></li>
</ul>

CSS

.star-rating{
    list-style:none;
    margin: 0 auto;
    padding:0px;
    width: 250px;
    height: 50px;
    position: relative;
    background: url(http://s11.postimg.org/cfr9p1xjz/alt_star.png) top left repeat-x;       
}

.star-rating li{
    padding:0px;
    margin:0px;
    float: left;
}
.star-rating li a{
    display:block;
    width:50px;
    height: 50px;
    text-decoration: none;
    text-indent: -9000px;
    z-index: 40;
    padding: 0px;
}
.star-rating li a:hover{
    background: url(http://s11.postimg.org/cfr9p1xjz/alt_star.png) left bottom;
    z-index: 4;
    left: 0px;
}
.star-rating a.one-star{
    left: 0px;
}
.star-rating a.one-star:hover{
    width:50px;
}
.star-rating a.two-stars{
    left:50px;
}
.star-rating a.two-stars:hover{
    width: 100px;
}
.star-rating a.three-stars{
    left: 100px;
}
.star-rating a.three-stars:hover{
    width: 150px;
}
.star-rating a.four-stars{
    left: 150px;
}   
.star-rating a.four-stars:hover{
    width: 200px;
}
.star-rating a.five-stars{
    left: 200px;
}
.star-rating a.five-stars:hover{
    width: 250px;
}
.star-rating li.current-rating{
    background: url(http://s11.postimg.org/cfr9p1xjz/alt_star.png) left center;
    position: absolute;
    height: 50px;
    display: block;
    text-indent: -9000px;
    z-index: 1;
}

1 个答案:

答案 0 :(得分:5)

为你的星星添加一个定位,这样就可以了。 http://jsfiddle.net/tkh2czee/2/

.star-rating li a{
  position: absolute;
  ...
}