温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

CSS3中怎么实现各种图形

发布时间:2021-06-25 15:59:03 来源:亿速云 阅读:181 作者:Leah 栏目:web开发

CSS3中怎么实现各种图形,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1、自适应的椭圆

代码如下:


<div class="div1"> 鼠标划上来看看</div>
<style>
.div1{  background:#fb3;  width:200px;  height:200px;  line-height:200px;
         text-align: center; border-radius: 50%;  transition: all 0.25s ease-in;
}
.div1:hover{  background: #ff1d50;  width:400px;  height:200px;  border-radius: 50%;
               -webkit-transition: all 0.2s ease-in;  transition: all 0.2s ease-in;
}
/* ->  首先你得知道,border-radius不仅仅支持整数,还支持百分比    */
</style></p> <p>

CSS3中怎么实现各种图形


运动的椭圆

2、半椭圆

代码如下:


<div class="div2"></div>
<div class="div3"></div>
<style>
.div2{  background:#fb3;  width:100px;  height:100px;  border-radius: 100%  0 0 0;  transition: all 0.25s ease-in; }
.div3{  background:#fb3;  width:100px;  height:100px;  border-radius: 0  0 0 100%;  transition: all 0.25s ease-in; }
/* ->  首先你得知道,border-radius不仅仅支持整数,还支持百分比    */
</style>

本来一个div就可以,不过我用了两个四十五度的,自己玩。

CSS3中怎么实现各种图形


半椭圆

3、平行四边形

代码如下:


<div class="div4">首先</div>
<style>
.div4{  position:relative;  width:100px;  height:100px;  line-height:100px;  text-align: center;  color: #fff; }
.div4::before {  content: '';   /* 用伪元素来生成一个矩形*/
 position:absolute;  top:0; right:0; bottom:0; left:0;  z-index: -1;
 background:#58a;  transform:skew(15deg); }
</style>

CSS3中怎么实现各种图形


平行四边形

4、平行四边形

代码如下:


<div class="div5">
   <img src="../w658.jpg"/>
</div>
<style>
.div5{
   width:100px;
 height: 100px;
   transform:rotate(45deg);
   overflow:hidden; }
.div5 >img {
 max-width:100%;
 transform: rotate(-45deg)scale(1.42);
}
</style>

CSS3中怎么实现各种图形


平行四边形

5、切角矩形

代码如下:


<div class="div6"></div>
<style>
.div6{
 width:200px;
 height:100px;
 background:#58a;
 background:
  linear-gradient(-45deg,transparent 15px, #58a 0)   right,
  linear-gradient(45deg,transparent 15px, #655 0)   left;
 background-size:50% 100%;
 background-repeat: no-repeat;
}
</style>

CSS3中怎么实现各种图形


切角矩形

6、凹角矩形

代码如下:


<div class="div7"></div>
<style>
.div7{
 width:240px;
 height:50px;
 background:#58a;
 background:
  radial-gradient(circle at top left,
  transparent 8px,#58a 0)top left,
  radial-gradient(circle at top right,
  transparent 8px,#58a 0)top right,
  radial-gradient(circle at bottom right,
  transparent 8px, #58a 0)bottom right,
  radial-gradient(circle at bottom left,
  transparent 8px,#58a 0)bottom left;
 background-size:50% 50%;
 background-repeat:no-repeat;
}
</style>

CSS3中怎么实现各种图形


凹角矩形

7、切角矩形(SVG)

代码如下:


<div class="div8"></div>
<style>
.div8{
 width:240px;
 height:50px;
 background:#58a;
 border:15px solid #58a;/*  当切角存在时,则显示切角,不支持时,则显示边框  */
 border-image:1 url('data:image/svg+xml,<svg xmlns="<a href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>" width="3" height="3" fill="%2358a">\
  <polygon points="0,1 1,0 2,0 3,1 3,2 2,3 1,3 0,2"/></svg>');
 background-clip:padding-box; }
</style>

CSS3中怎么实现各种图形


切角矩形

8、梯形

代码如下:


<div class="div9"></div>
<style>
.div9{
 width:240px;
 height:40px;
 position:relative;
 color: white;
}
.div9:before{
 content: ''; /* 用伪元素来生成一个矩形*/
 position:absolute;
 top: 0;
right:0;
bottom:0;
left:0;
 z-index:-1;
 background:#58a;
 transform:perspective(.5em)rotateX(5deg);
}
</style>

CSS3中怎么实现各种图形


梯形

9、梯形

代码如下:


<div class="div10"></div>
<div class="div10"></div>
<div class="div10"></div>
<div class="div10"></div>
<style>
.div10{
 float:left;
 width:60px;
 height:40px;
 position:relative;
 padding:.3em 1em 0;
}
.div10:before{
 content: '';
 position: absolute;
 width:110px;
 top:0;right:0;
 bottom:0;
 left:0;
 z-index:-1;
 background:#ccc;
 background-image:linear-gradient(
  hsla(0,0%,100%,.6),
  hsla(0,0%,100%,0));
 border:1px solid rgba(0,0,0,.4);
 border-bottom:none;
 border-radius:.5em .5em 0 0;
 box-shadow:0 .15em white inset;
 transform:perspective(.5em)rotateX(5deg);
 transform-origin:bottom;
}
</style>

CSS3中怎么实现各种图形


梯形

10、梯形

代码如下:


<div class="div11"></div>
<div class="div11"></div>
<div class="div11"></div>
<div class="div11"></div>
<style> .div11{
 float:left;
 width:60px;
 height:40px;
 position:relative;
 padding:.3em 1em 0;
}
.div11:before{
 content: '';
 position: absolute;
 width:110px;
 top:0;right:0;
 bottom:0;left:0;
 z-index:-1;
 background:#ccc;
 background-image:linear-gradient(
  hsla(0,0%,100%,.6),
  hsla(0,0%,100%,0));
 border:1px solid rgba(0,0,0,.4);
 border-bottom:none;
 border-radius:.5em .5em 0 0;
 box-shadow:0 .15em white inset;
 transform:perspective(.5em) rotateX(4deg);
 transform-origin:bottom left;
}
</style>

CSS3中怎么实现各种图形


梯形

11、div饼图

代码如下:


<div class="div12">
<div></div>
<div><div></div></div>
<div></div> <div></div>
</div>
<style>
.div12{
 float:left;
 width:100px;
 height:100px;
 border-radius: 50%;
 background: #655;
 overflow:hidden;  position:relative;
}
.div12:after{
 content:'';
 display:table;
 clear:both;
 position:absolute;
 top:0;bottom:0;left:0;right:0;
}
.div12 div{
 position:absolute;
 float:left;
 width:100px;
 height:100px;
 border-radius: 50%;
}
.div12>div:first-child{
 background-image:
  linear-gradient(to right,transparent 50%, rgba(198, 179, 129, 0.94) 0); }
.div12>div:first-child:before{
 content: '';
 display:block;
 margin-left:50%;
 height:100%;
 border-radius:0 100% 100% 0 /50%;
 background-color:#655;
 transform-origin:left;
 transform: rotate(50deg);
}
.div12>div:nth-child(2){
 background-image:
  linear-gradient(140deg,transparent 50%, rgba(35, 198, 41, 0.94) 0);
}
.div12>div:nth-child(2):before{
 content: '';
 display:block;
 margin-left:50%;
 height:100%;
 border-radius:0 100% 100% 0 /50%;
 background-color:#655;
 transform-origin:left;
 transform: rotate(145deg);
}
</style>

CSS3中怎么实现各种图形


饼图

12、饼图

代码如下:


<svg width="100" height="100">
<circle r="25" cx="50" cy="50" />
</svg>
<style>
@keyframes fillup {  to { stroke-dasharray: 100 100; } }
circle {
 fill:yellowgreen;
 stroke:#655;
 stroke-width: 50;
 stroke-dasharray:38 100; /* 可得到比率为38%的扇区*/
}
svg{
 width:100px;height:100px;
 transform:rotate(-90deg);
 background:yellowgreen;
 border-radius:50%;
}
</style>

CSS3中怎么实现各种图形


饼图

13、js绘制饼图

代码如下:


<div class="pie1">20%</div>
<div class="pie2">60%</div>
<script>
function $$(selector,context) {
 context =context || document;
 var elements =context.querySelectorAll(selector);
 return Array.prototype.slice.call(elements);
}
$$('.pie1').forEach(function(pie) {
 var p = parseFloat(pie.textContent);
 var NS = "<a href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>";
 var svg = document.createElementNS(NS, "svg");
 var circle =document.createElementNS(NS, "circle");
 var title = document.createElementNS(NS, "title");</p> <p>  circle.setAttribute("r", 25);  circle.setAttribute("cx",16);
 circle.setAttribute("cy",16);  circle.setAttribute("stroke-dasharray",p + 100);
 console.log(p + 100);
 svg.setAttribute("viewBox", "0 0 32 32");
 title.textContent = pie.textContent;
 pie.textContent = '';
 svg.appendChild(title);
 svg.appendChild(circle);
 pie.appendChild(svg); });
</script>
<style>
@keyframes fillup {  to { stroke-dasharray: 100 100; } }
.pie1 circle {
 fill:yellowgreen;
 stroke:#655;
 stroke-width: 50;
 stroke-dasharray:70 160; /* 可得到比率为38%的扇区*/
}
.pie1 svg{
 width:100px;height:100px;
 transform:rotate(-90deg);
 background:yellowgreen;
 border-radius:50%;
}
</style>

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI