最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

利用CSS-border属性实现圆饼图表_html/css

来源:动视网 责编:小采 时间:2020-11-27 16:22:51
文档

利用CSS-border属性实现圆饼图表_html/css

利用CSS-border属性实现圆饼图表_html/css_WEB-ITnose:一般圆饼图表的实现如不考虑IE低版本浏览器的话,利用Canvas或是CSS3都能很好的实现,可是我们现在做的项目最低都要兼容到IE8,所以就想到了Border,相信大家用过border画出各种兼容良好的三角行。 像这样的图表如果只平分四等分的话,实现起来还是挺简单的:
推荐度:
导读利用CSS-border属性实现圆饼图表_html/css_WEB-ITnose:一般圆饼图表的实现如不考虑IE低版本浏览器的话,利用Canvas或是CSS3都能很好的实现,可是我们现在做的项目最低都要兼容到IE8,所以就想到了Border,相信大家用过border画出各种兼容良好的三角行。 像这样的图表如果只平分四等分的话,实现起来还是挺简单的:


  一般圆饼图表的实现如不考虑IE低版本浏览器的话,利用Canvas或是CSS3都能很好的实现,可是我们现在做的项目最低都要兼容到IE8,所以就想到了Border,相信大家用过border画出各种兼容良好的三角行。

像这样的图表如果只平分四等分的话,实现起来还是挺简单的:

html代码:

    

CSS代码:

.border-i{ float:left; width:80px; height:80px; border-radius:40px; background:#ffd203; overflow:hidden; position:relative; }.border-i i{ width:0; height:0; border:40px transparent dotted; position:absolute;}.border-i .i1{ right:-40px; top:-40px;}.border-i .i2{ right:-40px; bottom:-40px;}.border-i .i3{ left:-40px; bottom:-40px;}.border-i .i4{ left:-40px; top:-40px;}

现在刚好把一个圆饼平分了四等分,如要不同颜色显示直接改变其border-color即可。

原理如下图,一个带有圆角的容器里面有四个宽高和自己一样的子元素平铺排列,然后溢出隐藏。

所以,如果比例占5%的话(默认宽高都80像素),

h=40*tan(360deg*5%);

结果约等于13px,那css代码如下:

.border-i .i2{ top:-40px; right:-13px; border-right:13px solid #fd9500;}

呈现效果如下:

可以看出只要控制了圆饼的四分之一即0%~25%,那其他的25%~50%、50%~75%、75%~100%原理都一样,

其中除去几个特殊值:

 /* 0% *//* 所有border-color默认透明; */  /* 25% */.border-i .i2{border:40px #fd9500 solid;}  /* 50% */.border-i .i2,.border-i .i3{border:40px #fd9500 solid;}  /* 75% */.border-i .i2,.border-i .i3,.border-i .i4{border:40px #fd9500 solid;}  /* 100% */.border-i .i1,.border-i .i2,.border-i .i3,.border-i .i4{border:40px #fd9500 solid;}

其他的计算原理都一样:

/* *设 A = 5%~25%; * H = 40 * tan(360deg * A%); */.border-i .i1{ right: -Hpx; border-left: Hpx solid #fd9500;}/* *设 B = 25%~50%; * H = 40 * tan(360deg *(B% - 25%)); */.pct30 .i1{border-color: #fd9500;}.pct30 .i2{ bottom: -Hpx; border-top: Hpx solid #fd9500;}/* *设 C = 50%~75%; * H = 40 * tan(360deg *(C% - 50%)); */.pct55 .i1, .pct55 .i2{border-color: #fd9500;}.pct55 .i3{ left: -Hpx; border-right: Hpx solid #fd9500;}/* *设 D = 75%~100%; * H = 40 * tan(360deg *(D% - 75%)); */.pct80 .i1, .pct80 .i2, .pct80 .i3{border-color: #fd9500;}.pct80 .i4{ top: -Hpx; border-bottom: Hpx solid #fd9500;}

最后Demo效果如下:

Demo源码:

  利用CSS-border属性实现圆饼图表     

0%

15%

25%

40%

50%

65%

75%

90%

100%

如果要兼容IE8以下的浏览器的圆角(border-radius),就加一个尺寸一样的遮罩层,背景为圆形镂空背景色的纯色png图片:

在body底部标签前加入如上代码,注意图片地址为你自己放置的路径。

文档

利用CSS-border属性实现圆饼图表_html/css

利用CSS-border属性实现圆饼图表_html/css_WEB-ITnose:一般圆饼图表的实现如不考虑IE低版本浏览器的话,利用Canvas或是CSS3都能很好的实现,可是我们现在做的项目最低都要兼容到IE8,所以就想到了Border,相信大家用过border画出各种兼容良好的三角行。 像这样的图表如果只平分四等分的话,实现起来还是挺简单的:
推荐度:
标签: 实现 html 饼图
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top