使用CSS绘制星级评分效果的方法
2015-08-05 16:50
791 查看
先来看一下CSS绘制五角星的基本方法:
有了这个基础,基本上星级评分的效果就容易实现了:
下图是Demo中会用到的图,可右键另存
HTML Code
CSS Code
这样就基本实现了鼠标hover显示对应的星级,后面再增加点JS来实现click效果就可以啦
Demo
#star-five { margin: 50px 0; position: relative; display: block; color: red; width: 0px; height: 0px; border-right: 100px solid transparent; border-bottom: 70px solid red; border-left: 100px solid transparent; -moz-transform: rotate(35deg); -webkit-transform: rotate(35deg); -ms-transform: rotate(35deg); -o-transform: rotate(35deg); } #star-five:before { border-bottom: 80px solid red; border-left: 30px solid transparent; border-right: 30px solid transparent; position: absolute; height: 0; width: 0; top: -45px; left: -65px; display: block; content: ""; -webkit-transform: rotate(-35deg); -moz-transform: rotate(-35deg); -ms-transform: rotate(-35deg); -o-transform: rotate(-35deg); } #star-five:after { position: absolute; display: block; color: red; top: 3px; left: -105px; width: 0px; height: 0px; border-right: 100px solid transparent; border-bottom: 70px solid red; border-left: 100px solid transparent; -webkit-transform: rotate(-70deg); -moz-transform: rotate(-70deg); -ms-transform: rotate(-70deg); -o-transform: rotate(-70deg); content: ""; }
有了这个基础,基本上星级评分的效果就容易实现了:
下图是Demo中会用到的图,可右键另存
HTML Code
<ul class="rating nostar"> <li class="one"><a href="#" title="1 Star">1</a> </li> <li class="two"><a href="#" title="2 Stars">2</a> </li> <li class="three"><a href="#" title="3 Stars">3</a> </li> <li class="four"><a href="#" title="4 Stars">4</a> </li> <li class="five"><a href="#" title="5 Stars">5</a> </li> </ul>
CSS Code
.rating { width: 124px; height: 19px; margin: 0 0 20px 0; padding: 0; list-style: none; clear: both; position: relative; background: url(http://www.zjgsq.com/wp-content/uploads/2014/09/stars.png) no-repeat 0 0; } .nostar { background-position: 0 0 } .onestar { background-position: 0 -19px } .twostar { background-position: 0 -38px } .threestar { background-position: 0 -57px } .fourstar { background-position: 0 -76px } .fivestar { background-position: 0 -95px } ul.rating li { cursor: pointer; float: left; text-indent: -999em; } ul.rating li a { position: absolute; left: 0; top: 0; width: 25px; height: 19px; text-decoration: none; z-index: 200; } ul.rating li.one a { left: 0 } ul.rating li.two a { left: 25px; } ul.rating li.three a { left: 50px; } ul.rating li.four a { left: 75px; } ul.rating li.five a { left: 100px; } ul.rating li a:hover { z-index: 2; width: 125px; height: 19px; overflow: hidden; left: 0; background: url(http://www.zjgsq.com/wp-content/uploads/2014/09/stars.png) no-repeat 0 0 } ul.rating li.one a:hover { background-position: 0 -19px; } ul.rating li.two a:hover { background-position: 0 -38px; } ul.rating li.three a:hover { background-position: 0 -57px } ul.rating li.four a:hover { background-position: 0 -76px } ul.rating li.five a:hover { background-position: 0 -95px }
这样就基本实现了鼠标hover显示对应的星级,后面再增加点JS来实现click效果就可以啦
Demo
相关文章推荐
- CSS3圆圈旋转的样式
- css常用技巧
- css 画基本图形
- css之自己对hack的理解
- css3 - 旋转的木马
- select下拉框内容显示不完整
- js引入api、css的方式
- 将页面table内容与样式另存成excel文件的方法
- CSS笔记之样式
- 常用的css命名规则:
- html与css的关系
- css样式大全--整理
- 左右对齐,form-inline样式的使用
- Sass 用法指南
- CSS的盒子模型与布局
- 网页 布局响应式设计
- 11. CSS 文本属性
- 谷歌浏览器修改CSS和js后同步保存到文件中 (译)
- 30天了解30种技术系列---(5)新型CSS框架-Less
- QTabWidget 细节样式定制'>'的使用