美文网首页
纯css实现三角形

纯css实现三角形

作者: 苏敏 | 来源:发表于2017-11-26 17:54 被阅读12次

    今天读大漠老师的图解css3中,遇到一个需要画三角形的地方,我刚好学一下。

    image.png
    这里是我做的一些注释,我们来看一下,首先我们设置了一个白色的5px的border,通过设置宽高为0达到整个盒子只剩下border值,然后通过border-color来取到三角形,我们也可以通过调整颜色值的位置来达到不同方向上的实体三角形。
    实现效果如下
    image.png

    到这里我们就可以获取到一个简单的三角形,但是如果我们想要一个没有内边线的三角形呢,如图示


    image.png

    是不是要动动脑筋呢,实现的思路其实还是上面那个,但是需要动一动你的脑袋,首先我们把问题分解,一步步的去实现这个过程才是收货。

    • 我们可以先拿到一个矩形框
    • 其次我们也可以通过设置边框的方式来拿到三角形,可是好像一个三角形拿不到我们想要的结果啊,怎么办呢?
    • 一个实心三角形我会了,但是中间那部分怎么去掉呢?好像把三角形的黑色部分去掉不就可以了嘛,我可以再设置一个三角形来达到目的的
    • 通过实心三角形的方法我能拿到大小两个三角形了,然后通过把小三角形的颜色设置为transparent就可以了

    最终实现代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            #demo {
              width: 300px;
              height: 150px;
              background-color: #fff;
              position: relative;
              border: 4px solid #333;
            }
    
            #demo:after, #demo:before {
                /*这里边框是为了方便看清楚演示*/
              border: 5px solid #ccc;
              content: '';
              width: 0;
              height: 0;
              left: 100%;
              position: absolute;
            }
    
            #demo:before {
                border-width: 14px;
                border-color: transparent transparent transparent  #333 ;
                top: 10px;
            }
            
            #demo:after {
                border-width:9px;
                border-color: transparent transparent transparent  #fff ;
                top:15px;
            }
    </style>
    </head>
    <body>
        <div id="demo"></div>
    </body>
    </html>
    

    ok,也算是复习css头疼之后一点小乐趣吧,鼓励一下,继续加油!

    相关文章

      网友评论

          本文标题:纯css实现三角形

          本文链接:https://www.haomeiwen.com/subject/ektlbxtx.html