使用CSS实现的平面阴影进度条效果
2016-03-06 11:10
686 查看
本来只是想做个简单的两色平面进度条的,结果误打误撞做出了个平面阴影效果,感觉效果完爆之前的构想图,简直是惊喜!!
整体效果如下:
![](https://img-blog.csdn.net/20160306145226205?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
整体设计方面,主要照顾到的是HTML文档的语义性,即使在不使用CSS和JS时也能够保证文档可以理解。元素使用<span>语义性也较强,使用了两层嵌套结构,外层可理解为全百分比(即100%),内层则可理解为当前百分比。
HTML代码如下:
未加载CSS和JS的情况下的页面效果如下,信息基本上还是可用的:
![](https://img-blog.csdn.net/20160306145608738?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
CSS代码如下:
仅加载CSS后的页面效果如下,信息基本可用,样式的话可能会让用户产生些许误解:
![](https://img-blog.csdn.net/20160306145932739?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
JavaScript代码如下,图省事就没有写原生了:
对兼容性方面没有过多地测试,Safari9.0.3和Chrome48下都表现正常,IE11由于不支持border-radius属性,没有表现出圆角来,也算是另一种风格吧。
整体效果如下:
整体设计方面,主要照顾到的是HTML文档的语义性,即使在不使用CSS和JS时也能够保证文档可以理解。元素使用<span>语义性也较强,使用了两层嵌套结构,外层可理解为全百分比(即100%),内层则可理解为当前百分比。
HTML代码如下:
<ul> <li>HTML <span class="sklevel"><span>0.80</span></span> </li> <li>CSS <span class="sklevel"><span>0.85</span></span> </li> <li>JavaScript <span class="sklevel"><span>0.75</span></span> </li> <li>Python <span class="sklevel"><span>0.80</span></span> </li> <li>Java <span class="sklevel"><span>0.50</span></span> </li> <li>C <span class="sklevel"><span>0.65</span></span> </li> <li>PhotoShop <span class="sklevel"><span>0.75</span></span> </li> </ul>
未加载CSS和JS的情况下的页面效果如下,信息基本上还是可用的:
CSS代码如下:
span.sklevel { position: absolute; right: 0; top: 25%; width: 120px; height: 50%; background: #ccc; border-radius: 5px; /*设为高度的一半最佳*/ } span.sklevel span { position: absolute; left: 0; top: 0; width: 25%; height: 90%; /*可变进度条高度稍低于进度槽*/ line-height: 100%; color: #ccc; font-size: 50%; text-align: center; background: #666; border-radius: inherit; border-top-right-radius: 0; border-bottom-right-radius: 0; transition: width 1s; /*添加载入动画*/ }
仅加载CSS后的页面效果如下,信息基本可用,样式的话可能会让用户产生些许误解:
JavaScript代码如下,图省事就没有写原生了:
(function($) { $(function() { //根据进度值(0~1)调整进度条长度 (function() { var sklevel_span = $("span.sklevel span"); for (var i=0, len=sklevel_span.length; i<len; i++) { var lv = +$(sklevel_span[i]).text(); lv = lv > 1 ? 100 : lv * 100; $(sklevel_span[i]).css({"width": lv + "%"}).text(""); //调整进度条长度并清除文字说明 } }()); }); }(jQuery));
对兼容性方面没有过多地测试,Safari9.0.3和Chrome48下都表现正常,IE11由于不支持border-radius属性,没有表现出圆角来,也算是另一种风格吧。
相关文章推荐
- Web布局连载——两栏固定布局(五)
- [div+css]晒晒最新制作专题推广页模板
- [css] line-height 百分比单位和数值单位的区别
- Apple官网研究之使用Justify布局导航
- 设计更快的网页(三):字体和 CSS 调整
- 纯CSS制作的新闻网站中的文章列表
- 10条影响CSS渲染速度的写法与使用建议第1/3页
- BS项目中的CSS架构_仅加载自己需要的CSS
- 很不错的 CSS Hack 又学了一招
- 发一个css比较清爽的写法
- CSS expression控制图片自动缩放效果代码[兼容 IE,Firefox]
- css布局网页水平居中常用方法
- CSS经典技巧十则第1/2页
- css 兼容性问题this.style.cursor=''hand''
- IE6不能正常解析CSS文件问题的解决方法及原因分析
- 欲练CSS ,必先解决IE的一些细节分析
- CSS文字截取功能实现代码
- 支持IE6 IE7 Firefox 的纯CSS的下拉菜单
- 不同版本IE使用不同css(css条件注释语句用法)
- css类选择器的使用方法详解