zoukankan      html  css  js  c++  java
  • 利用border和伪类画出三角形 ps:好久没写博客了。。。

      有一个半月没有写博客了,这段时间,小哥我经历了自入行前端最为黑暗的时期,迷茫,空虚,不想写代码,不想做研究了。连打游戏都没有兴趣,如同行尸走肉一般。还好,毕业论文的初稿完成后,整个时间段最恶心最难熬的部分已经过去了,于是乎,小哥我满血复活,继续在前端中挥舞着大宝剑,砍怪升级。

      之前看极客学院的幽灵按钮视频,发现了他们在做tooltip提示框的时候,利用span标签在div下方定位一个小的三角形,至于形状的做法,利用border来实现。具体做法是:以向下三角形为例,将span的border设一个高的值,其颜色设为transparent,并将border-top设为自己需要的颜色,宽和高都设为0px。这样这个三角形就完成了,接下来只要用position定位将它定位到我们设想的位置就可以了。

      今天,在做一个移动端应用的时候,又碰到了这个问题,突然想起了之前一道百度的面试题,也是用html和css实现这样的小三角形。这次,我通过after伪类来实现。

      

    <!DOCTYPE html>
    <html>
    <head>
        <style>
            div{
                width: 100px;
                height: 100px;
                border: 1px solid #000000;
            }
            div:before, div:after{
                content: ""; 
                width: 0px;
                height: 0px;
                position: absolute;
                top: 40px;
                left: 109px; 
                border: 10px solid transparent;
                border-left-color: #ffffff;
            }
            div:before{
                top: 39px;
                border: 11px solid transparent;
                border-left-color: #000000;
            }
        </style>   
    </head>
    <body>
        <div></div>
    </body>
    </html>

      效果图如下:

      这里的三角形,我用了before和after两个伪元素后,将其重叠在一起,并且两个伪类的border值相差为1px,这样正好组成上图这样的效果。

      前端路漫漫啊,小哥还要继续努力,把这个方法发布上来是为了跟大家一起分享。更主要是为了给自己记个笔记,免得自己再碰到这种情况时忘记怎么做,让自己早日摆脱前端小白的窘境。

  • 相关阅读:
    前端组件库
    lazyload隐藏元素不生效处理方法
    Javascript规范
    发送验证码
    flex
    css3转圈
    1.15考试总结
    [violet]蒲公英题解
    ubuntu和windows下的程序对拍
    [Poetize6] IncDec Sequence题解
  • 原文地址:https://www.cnblogs.com/skyloveanna/p/4244438.html
Copyright © 2011-2022 走看看