使用CSS实现空心的向上向下的箭头


最近在仿京东的首页,看了下京东的网页 有些文字背后都带有一些向下的箭头【◇】 鼠标移动上去之后又变为向上。开始以为是使用的背景图,后来发现是使用CSS实现的,大概看了下,想出了下面的实现方法:

  元素的边框其实是一个正方形实现的 通过给四个方法的边框定义不同的color 和 style 可以实现某个方位的边框为透明的。

  如图:

  如果需要一个向上的实心的箭头 那么可以让边框的 上 右 左 三边的color为transparent style为dashed 下边的color为你需要的颜色 style为solid既可以实现!

  下面来说下如何实现一个空心的箭头,大致的思路就是使用两个边框来重叠获取 。

  如果需要一个向下的空心箭头 ,可以使用两个实心的箭头来重叠获取

    首先,让两个边框重叠在一起 使用 position定位 将两个边框的位置重叠

    其次,设置某个边框的位置相对另一个边框的位置的top值大一个像素:top:1px

    三,经过上一步,重叠的两个边框就有一个是突出了一个像素的,我们要的就是这一个像素。将突出了一个像素的边框的color设为箭头需要的颜色 将另一个边框的color设为元素所在父元素的背景色,这样就可以看到一个空心的箭头了!如图:

 

 

如果 黑色三角的颜色设置为父元素的背景色 覆盖之后则只有淡蓝色的箭头了。实现代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>空心箭头</title>
    <style type="text/css">
    *{
        padding:0px;
        margin:0px;
    }
    #box{
        width:100px;
        height:100px;
        margin:0 auto;
        /*border:1px solid red;*/
        position:relative;
        background:white;
    }
    .tip{
        width:12px;
        height:12px;
        position:absolute;
        left:0px;
        top:0px;
        /*border:1px solid blue;*/

    }
    .em1,.em2{
        width:0px;
        height:0px;
        display:block;
        position:absolute;
        left:0px;
        top:0px;
        border-top:5px transparent dashed;
        border-right:5px transparent dashed;
        border-bottom:5px transparent dashed;
        border-left:5px white solid;
        overflow:hidden;

    }
    .em1{
        left:1px;
        border-left:5px gray solid;
    }
    .em2{
        border-left:5px white solid;
    }
    
    </style>
</head>
<body>
    <div id="box">
        <b class="tip"><i class="em1"></i><i class="em2"></i></b>
    </div>
</body>
</html>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM