纯CSS绘制箭头

这几天研究别人的网站,发现别人的箭头居然是用纯CSS写的。瞬间觉得高大上。细细研究其中的原理,发现其实也很简单。

CSS绘制三角形

绘制箭头,首先应该懂得如何用纯CSS绘制三角形。我们先做一个宽高为0,有边框的div看一看效果。

.box{
            width: 0;
            height: 0;
            border: 50px solid;
            border-color: red yellow green blue;
        }
<div class="box"></div>

效果如下:

这里写图片描述

可以看到这个矩形是由四个三角形组成的,绘制三角形,只要让其余三个三角形颜色透明即可。利用“transparent”属性就可以做到。

.box{
            width: 0;
            height: 0;
            border: 50px solid;
            border-color: red transparent transparent transparent;
        }

效果如下:

这里写图片描述

CSS绘制箭头

那么如果利用三角形来绘制箭头呢?我们可以再绘制一个相同大小,相同方向的,颜色与背景色相同的三角形,覆盖在上一个三角形上面,通过产生一定位移而形成箭头,像这样:
这里写图片描述
以上,为了便于看出差别,图片中的三角形加了边框,如果没有边框,不就是一个完完整整的向下的箭头么?

通过给容器加:before和:after属性,我们可以为容器制作出两个三角形,进而重叠成一个箭头,如下:

    .container{
           height: 30px;
           line-height: 30px;
           border: 1px solid #ddd;
           position: relative;
           padding: 10px;
        }
        /*黑色三角形   */
        .container:before{
            content: "";
            display: block;
            position: absolute;
            top: 50%;
            right: 0;
            width: 0;
            height: 0;
            border:10px solid;
            margin-top: -10px;
            border-color: transparent transparent transparent #000;
        }
        /*背景色三角形*/
        .container:after{
            content: "";
            display: block;
            position: absolute;
            top: 50%;
            right: 1px;
            width: 0;
            height: 0;
            border:10px solid;
            margin-top: -10px;
            border-color: transparent transparent transparent #fff;
        }
        <div class="container">天下第一</div>

效果如下:

这里写图片描述

怎么样?有没有get起来?

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值