问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求教CSS3怎么画扇形

发布网友 发布时间:2022-04-06 12:37

我来回答

2个回答

懂视网 时间:2022-04-06 16:58

本篇文章给大家带来的内容是关于CSS如何实现任意角度的扇形(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

扇形制作原理,底部一个纯色原形,里面2个相同颜色的半圆,可以是白色,内部半圆按一定角度变化,就可以产生出扇形效果

<html>
<head>
 <meta charset="UTF-8">
 <title>扇形绘制</title>
 <style> 
 .shanxing{ position: relative; width: 200px; height: 200px; border-radius: 100px; background-color: yellow;
 } 
 .sx1{ position: absolute; width: 200px; height: 200px; transform: rotate(0deg); clip: rect(0px,100px,200px,0px); /*这个clip属性用来绘制半圆,在clip的rect范围内的内容显示出来,使用clip属性,元素必须是absolute的 */ border-radius: 100px; background-color: #f00;
  /*-webkit-animation: an1 2s infinite linear; */
 } 
 .sx2{ position: absolute; width: 200px; height: 200px; transform: rotate(0deg); clip: rect(0px,100px,200px,0px); border-radius: 100px; background-color: #f00;
  /*-webkit-animation: an2 2s infinite linear;*/
 }
 /*绘制一个60度扇形*/ .shanxing1 .sx1{transform: rotate(-30deg);} .shanxing1 .sx2{transform: rotate(-150deg);}

 /*绘制一个85度扇形*/ .shanxing2 .sx1{transform: rotate(-45deg);} .shanxing2 .sx2{transform: rotate(-140deg);}

 /*绘制一个向右扇形,90度扇形*/ .shanxing3 .sx1{transform: rotate(45deg);} .shanxing3 .sx2{transform: rotate(-45deg);}

 /*绘制一个颜色扇形 */ .shanxing4 .sx1{transform: rotate(45deg);background-color: #fff;} .shanxing4 .sx2{transform: rotate(-45deg);background-color: #fff;}

 /*绘制一个不同颜色半圆夹角 */ .shanxing5 .sx1{transform: rotate(45deg);background-color: #f00;} .shanxing5 .sx2{transform: rotate(-45deg);background-color: #0f0;}
</st
</head>
<body> 扇形制作原理,底部一个纯色原形,里面2个相同颜色的半圆,可以是白色,内部半圆按一定角度变化,就可以产生出扇形效果 <p>/绘制一个60度扇形/</p>

<div class="shanxing shanxing1">
 <div class="sx1"></div>
 <div class="sx2"></div>
</div>
<p>/*绘制一个85度扇形*/</p>
<div class="shanxing shanxing2">
 <div class="sx1"></div>
 <div class="sx2"></div>
</div>
<p>/*绘制一个向右扇形,90度扇形*/</p>
<div class="shanxing shanxing3">
 <div class="sx1"></div>
 <div class="sx2"></div>
</div>
<p>/*绘制一个颜色扇形 */</p>
<div class="shanxing shanxing4">
 <div class="sx1"></div>
 <div class="sx2"></div>
</div>

<p>/*绘制一个不同颜色半圆夹角 */</p>
<div class="shanxing shanxing5">
 <div class="sx1"></div>
 <div class="sx2"></div>
</div>

</body> 
</html></pre>

下面这个是结合css+html5+javascript的一个更复杂的圆环图形

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>">

 <title>circle</title>

 <style type="text/css"> #myCanvas{} #nihao{ position: absolute; top:10px; z-index: 1;
 }
 </style>
 </head>
<body style="background:#FBFBFB;">

<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;"> not suopport canvas </canvas>
<div id="nihao"></div>
<script>
var text=document.getElementById("nihao");
text.innerHTML="woshiwuxinguo"; var i=0.9;//这里默认设置好评率为90%

var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d");
ctx.beginPath();
ctx.lineWidth=10;
ctx.strokeStyle="gray";
ctx.arc(100,75,50,0,2*Math.PI);
ctx.fillStyle="#FBFBFB";
ctx.fill();
ctx.stroke();
ctx.beginPath();
ctx.translate(100,75);
ctx.rotate(-90*Math.PI/180);
ctx.strokeStyle="#FFCFCF";
ctx.arc(0,0,50,0,2*Math.PI*i);
ctx.stroke();
c.addEventListener("mouseover", function(e) {
ctx.beginPath();
ctx.strokeStyle="gray";
ctx.arc(0,0,50,0,2*Math.PI);
ctx.stroke(); var finish=i; var step=0; var internal=setInterval(function(e) {
console.log("step:"+step); if(step<finish){
 step=step+0.01;
 ctx.beginPath();
 ctx.strokeStyle="#FFCFCF";
 ctx.arc(0,0,50,0,2*Math.PI*step);
 ctx.stroke();
 }else{
 clearInterval(internal);
 }
}, 0.5)
}, true) </script> 

</body>
</html></pre>

热心网友 时间:2022-04-06 14:06

#fan{
width:0;
height:0;
border-radius:100px;
border-width:100px;
border-style:solid;
border-color:red transparent transparent transparent;
line-height:99em;
overflow:hidden;
cursor:pointer;
margin: 30px auto;
}

其实原理就是css制作三角型之后加上圆角属性

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人民币贬值对人民有什么影响 长春市办理设立个人律师事务所需要什么材料? 学生签证的延期都需要以下材料: 米3手机套彩绘小米3彩膜 骑马与砍杀光明与黑暗泡菜编队方法 陈染相关作品介绍 万紫千红是指什么生肖,精准已答落实 十二生肖谁是万紫千红 手机里带的网络电视怎么联接到笔记本电脑上看呢? ...手机,电脑连上网了,智能电视能连上看电视吗,怎样能看智能电视_百度... 求男孩名字五行要属金 姓唐 急急急 微信分销字母账户分成比例 分销和代销是什么区别呢? 我要分销是什么意思啊 在淘宝中什么叫分销账户啊?分销账户是属于代销上的么? 分销账号是什么? DNF疲劳药水怎么获得啊? 现在DNF上哪弄疲劳药水啊?求解 dnf疲劳药怎么买 DNF抗疲劳药水怎么得 DNF在哪里可以买到疲劳药水?如果疲劳值完了。玩什么呀? dnf哪里可以换疲劳药水 地下城与勇士 疲劳药水 那里有买 DNF疲劳药一天能吃几次 DNF在哪里买疲劳药水和双倍经验药水在哪里买啊 淘宝客订单放到购物车然后去村淘下单,这个订单淘宝客佣金为什么支付给了农村淘宝服务站 村淘合伙人? 手机上看衣服是264元,为什么在农村淘宝上显示278元 dnf抗疲劳药水怎么得? dnf疲劳药水在哪买 村小二和淘宝客的区别 不能开专票证明怎么写 不能开具增值税专用发票的情况说明怎么写 小规模纳税人怎么出具不能开增值税专用发票的说明 无法开具增值税专用发票的证明 怎么写 酒店没有增值税专用发票要写说明怎么写 不能开具增值税专票的情况有哪些 不能开专票的说明模板 我司开不了增税*,只能开普票,客户要求写不能开增税的书面说明,怎么写? 酒店开不了增值税专用发票证明怎么写 不能开具增值税专用发票都有哪些情况? 哪些情形不能开增值税专票 不能提供增值税发票的证明! 为什么商家不能开增值税专用发票 哪些情况不能开具增值税专用发票 无法开具增值税专用发票怎么写说明 小规模纳税人怎么出具不能开增值税专用发票的说明? 未开具增值税发票情况说明书 什么情况不能开具增值税专用发票 什么情况下不能开具增值税专用发票? 在DW中怎样使用代码去掉表格边框?