CSS画三角形原理

使用纯CSS画三角形,记得去年自己就碰到过。但是当时只是一味的在网上粘贴复制了写代码,并没有深究其原理。今天特地写一个学习笔记,记录一下。
大家都知道的盒模型,默认情况下形状是矩形的。下图为设置了width=200px div的盒模型。

盒模型

下面我们来看一看border。
html代码:

<div id="demo"></div>

css:

#demo{
            width:100px;
            height:100px;
            border:3px red solid;
        }

效果如图所示:


border

以上的效果我相信,只要学过前端的都会。
但是你知道border-top border-bottom border-right border-left到底是怎么划分的吗??反正我之前是不知道的,下面我们来看看。

#demo{
             width:100px;  
             height:100px;  
             border: 20px solid;  
             border-color: red blue red blue; 
        }

从图中我们可以看到每个border都是一个梯形,这并不像我之前以为的矩形。
接下来让我们,我们把div元素的宽变为0,这种情况下border又会是怎么变化的呢?(从图中我们可以每个border都是一个梯形,其中梯形的上底边等于div的width。为了把梯形变为三角形,我们就要缩小div的width。)

#demo{
             width:0px;  
             height:0px;  
             border: 40px solid;  
             border-color: red blue red blue; 
        }

在这种情况下,4个梯形变成了4个个三角形。那么到这里我们也就知道了如何使用CSS画三角形了。

#demo{
             width:0px;  
             height:0px;  
             border:40px solid transparent;
             border-bottom:80px solid red;
        }


我们把其他3条边设为transparent,就会得到如图所示的三角形。在这里border-bottom的width控制了三角形的高。
如果我们再把一条边设为0,又会变成什么样的呢??

这样我们就得到了一个直角三角形。我们使用CSS还能画出其他的形状,具体请参考下面的链接:
https://css-tricks.com/examples/ShapesOfCSS/

遇到问题,自己动手试试,就会豁然开朗的。
以下为参考资料:
https://www.zhihu.com/question/35180018
http://www.tuicool.com/articles/3eaINn

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

推荐阅读更多精彩内容

  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,672评论 0 8
  • 下面介绍CSS画三角形的原理 一、首先画一个div,给它宽高和背景颜色。再加上四条边的边框。 二、div的widt...
    iam梦的的阅读 684评论 0 1
  • 关键是你怎么理解border 结果如图。为啥结果是这样的呢?边角为啥是各占一半颜色呢?这样公平! 去掉对borde...
    鸭梨山大哎阅读 959评论 0 1
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 每一天,我们忙于自己的日子,奔波于生活的道路上。你还记得你的梦想吗?那些最初的、幼稚的想法,你是否早已忘却了。你是...
    Twinkle_______阅读 315评论 0 0