文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

CSS3中怎么实现各种图形

2024-04-02 19:55

关注

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;
}

</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; }

</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;
}
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;
}
.pie1 svg{
 width:100px;height:100px;
 transform:rotate(-90deg);
 background:yellowgreen;
 border-radius:50%;
}
</style>

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯