使用css画三角形


当代码时下面这样的时候,不知道你有没有想过出现的图形是什么呢?

 .angle {
      width: 100px;
      height: 100px;
      border-bottom: 100px solid #c7ddef;
      border-top: 100px solid chartreuse;
      border-left: 100px solid chocolate;
      border-right: 100px solid #c9302c;
    }

运行结果如下:

如果这时候中间的框消失,是不是就构成了四个三角形??

 .angle {
      width: 0px; //注意一定要是0而不能不写,不写的话系统默认的长款可能是一整个屏幕,这是出现的就不是三角形了
      height: 0px;
      border-bottom: 100px solid #c7ddef;
      border-top: 100px solid chartreuse;
      border-left: 100px solid chocolate;
      border-right: 100px solid #c9302c;
    }

运行结果:

所以我们可以利用这一原理,将其他的颜色的三角形换成透明色,最终显示的就是三角形了

.angle {
      width: 0px;
      height: 0px;
      border-bottom: 100px solid transparent;
      border-top: 100px solid transparent;
      border-left: 100px solid transparent;
      border-right: 100px solid #c9302c;
    }

运行结果:

注意:

1.如果需要其他图形的三角形,比如直角三角形:可以将上面和右面边框透明;

2.也可以将左右/上下的边框宽度调整来改变,比如:上下是100,左右是50来调整三角形的大小

.angle {
      width: 0px;
      height: 0px;
      border-bottom: 100px solid #c9302c;
      border-top: 100px solid transparent;
      border-left: 50px solid transparent;
      border-right: 50px solid #c9302c;
    }

除了通过CSS绘制三角形,H5新增的canvas也可以用来绘制三角形

<canvas id="  san" width="300" height="400"></canvas>

var canvasSan = document.getElementById('san')
var contextSan = canvasSan.getContext('2d')
contextSan.beginPath()
//将画笔移到x,y坐标处
contextSan.moveTo(0,100)
contextSan.lineTo(300,100)
contextSan.lineTo(300,400)
contextSan.closePath()
contextSan.lineWidth = 2
contextSan.strokeStyle = "#F5270B"
contextSan.fill()//默认填充的颜色未黑色
contextSan.stroke()

优质内容筛选与推荐>>
1、Java冒泡法排序参考实现
2、131016
3、jdk
4、百度搜索规律浅析
5、科普一下bl锁的知识,没解锁的必看!


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn