css三角形绘制方法总结

在做UI(页面重构)的时候,免不了和各种小图标打交道,这其中最多的应该是三角形以及箭头,一般情况下可以通过伪类使用unicode解决大部分问题。

现在我们来总结下几种使用css绘制三角形的方法,dom结构如下:

<div class="triangle"></div>

最简单最方便的办法 background

代码忽略

unicode

.triangle:after{
    display:block;
    content:"\25B2";
    color:"#fd5353";
    font-size:20px;
}

注意,伪类必须加上content属性,否则不生效

unicode图表

border

.triangle{
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-bottom: 100px solid red;
}

使用border绘制三角形是什么原理?事实上,宽度相等的border是以45度对接的,如下图:

image

那么没有了上border就是如下图:

image

再设置div的宽度为0,就是如下图:

image

再设置div的高度为0,如下图:

image

最后设置左右border的颜色为透明,如下图:

image

再来个动图:

image

通过这种原理,我们可以做更多的图形,比如五角星、六角星等,更多图形请移步shapesofcss

使用css3 transform rotate

image
.triangle {
    width: 30%;
    padding-bottom: 21.27%; /* = width / 1.41 */
    position: relative;
    
    //划重点
    overflow:hidden;
}

.triangle: before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #0079C6;
    
    //划重点
    transform-origin: 0 100%;        
    transform: rotate(45deg);
}

为什么是1.41,因为正方形的对角线长度是约等于1.414。

使用clip-path

.triangle{
    width:200px;
    height:200px;
    background:#fd5353;
    clip-path: polygon(50% 0, 0 100%, 100% 100%);
}

clip-path不支持安卓4.4以下,其余均需使用浏览器前缀-webkit,caniuse

详细请移步 clip-path

原文

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,798评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,331评论 0 11
  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,666评论 0 8
  • 1. 如何以最简单的方式理解用CSS画三角形原理?(自己实验得出的心得结论) 首先要知道一个盒子无宽高,有bord...
    起风了_点点阅读 1,067评论 0 1
  • 主题:让有趣的生命扑面而来 有趣的人做任何事情都会全情投入,成功得到幸福和快乐,不成功,也能够获得一种智慧。 这让...
    正念如是阅读 84评论 0 0