Search code examples
csscss-shapes

create an arrow using css


Is there any way to create an arrow like that in the following button, using CSS?

arrow button

I know how to create triangle-like arrows like this

#triangle_arrow {
        top: 3pt;
        content: "";
        display: inline-block;
        width: 0.5em;
        height: 0.5em;
        border-right: 0.1em solid black;
        border-top: 0.1em solid black;
        transform: rotate(45deg);
    }

but that line towards the arrow's corner is confusing me!


Solution

  • Already there is way through which you could achieve this i.e. suggested by James, but you could even do this using pseudo selectors or using pre-defined icons using font awesome to get an arrow icon next to some tag, as below.

    Solution 1:

    #box{
      width:100px;
      height:50px;
      background:blue;
      position:relative;
    }    
    #box:before{
            top: 20px;
            right:10px;
            content: "";
            display: inline-block;
            width: 0.5em;
            height: 0.5em;
            border-right: 0.1em solid white;
            border-top: 0.1em solid white;
            transform: rotate(45deg);
            position:absolute;
    }
    #box > p:after{
      content:'';
      width:20px;
      height:1px;
      background:white;
      right:10px;
      top:24px;
      position:absolute;
    }
    #box > p{
      font-size:24px;
      color:#fff;
      padding:10px;
      box-sizing:border-box;
    }
    <div id="box">
    <p>Next</p>
    </div>

    Solution 2 :

    #box{
      width:100px;
      height:50px;
      background:blue;
      position:relative;
    }    
    #box > p{
      font-size:24px;
      color:#fff;
      padding:10px;
      box-sizing:border-box;
    }
    #box > p > .fa{
      color:#fff;
      font-size:16px;
    }
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    
    <div id="box">
    <p>Next <i class="fa fa-arrow-right"></i></p>
    </div>