当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > CSS 星级评价效果代码

CSS样式表
CSS 表单元素不继承body的字体属性
网页制作学习教程 CSS Position
网页设计学习教程 CSS盒模型
vertical-align 表单元素垂直对齐的解决方法
不用Cookie的仿刷新二级高亮菜单
CSS3 优势以及网页设计师如何使用CSS3技术
CSS 网页制作 提高CSS可阅读性
CSS 样式表中引用图片地址在各浏览器中的差异
CSS Sprite优化 减少HTTP链接数
网页制作中应用的50个CSS技巧(国外)
CSS 英文教程 CSS语法
CSS 网页文字渐变效果
纯css 圆角实现代码
CSS 新的图像替换方法
不必需的样式脚本文件导致页面不能及时更新
CSS 约定写法 利用扩展
最全的CSS浏览器兼容问题小结
CSS 网页图文混排的10个技巧
IE的CSS制作网页技巧3则
创造100% 自适应css布局的行之有效的方法

CSS样式表 中的 CSS 星级评价效果代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-20   浏览: 155 ::
收藏到网摘: n/a

先来个截图:

效果很简单,可能现在您现在脑子里已经有实现的思路了。下面先看一下我们通常情况下的实现方法:
CSS:
代码

复制代码
代码如下:

.jsstar
{ list-style: none;
margin: 0px;
padding: 0px;
width: 100px;
height: 20px;
position: relative;
}
.jsstar li
{
padding:0px;
margin: 0px;
float: left;
width:20px;
height:20px;
background:url(star_rating.gif) 0 0 no-repeat;
}

HTML:

复制代码
代码如下:

<p>Javascript + CSS实现</p>
<ul class="jsstar">
<li title="一星"></li>
<li title="二星"></li>
<li title="三星"></li>
<li title="四星"></li>
<li title="五星"></li>
</ul>

JS:(我用的是jquery)

复制代码
代码如下:

<script type="text/javascript" src="/upload/tech/20100120/20100120134840_d6baf65e0b240ce177cf70da146c8dc8.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".jsstar >li").hover(
function(){$(this).css({"background-position":"left bottom"}).prev().trigger("mouseover")},
function(){$(this).css({"background-position":"left top"}).prev().trigger("mouseout")})
.click(function(){alert($(this).attr("title"))});
});
</script>

这里是效果图:

是不是和上面的没什么区别,可是又一想如果用户禁掉了javascript岂不是效果很惨?
于是我们想到了用纯CSS实现,下面是代码:
CSS:
代码

复制代码
代码如下:

/*CSS Star start*/
.star-rating
{
list-style: none;
margin: 0px;
padding: 0px;
width: 100px;
height: 20px;
position: relative;
background: url(star_rating.gif) top left repeat-x;
}
.star-rating li
{
padding: 0px;
margin: 0px;
float: left;
}
.star-rating li a
{
display: block;
width: 20px;
height: 20px;
text-decoration: none;
text-indent: -9000px;
z-index: 20;
position: absolute;
padding: 0px;
}
.star-rating li a:hover
{
background: url(star_rating.gif) left bottom;
z-index: 1;
left: 0px;
}
.star-rating a.one-star
{
left: 0px;
}
.star-rating a.one-star:hover
{
width: 20px;
}
.star-rating a.two-stars
{
left: 20px;
}
.star-rating a.two-stars:hover
{
width: 40px;
}
.star-rating a.three-stars:hover
{
width: 60px;
}
.star-rating a.three-stars
{
left: 40px;
}
.star-rating a.four-stars
{
left: 60px;
}
.star-rating a.four-stars:hover
{
width: 80px;
}
.star-rating a.five-stars
{
left: 80px;
}
.star-rating a.five-stars:hover
{
width: 100px;
}

HTML:

复制代码
代码如下:

<ul class='star-rating'>
<li><a href='#' title='一星' class='one-star'>1</a></li>
<li><a href='#' title='二星' class='two-stars'>2</a></li>
<li><a href='#' title='三星' class='three-stars'>3</a></li>
<li><a href='#' title='四星' class='four-stars'>4</a></li>
<li><a href='#' title='五星' class='five-stars'>5</a></li>
</ul>

看看上面CSS的行号您是不是吓了一跳,这么简单的效果竟然用了这么多代码?在我看来不用JS就只能一个效果一个样式了,如果您还有更简单更炫的效果请指教!
代码打包下载