Arrow before and after a box with CSS

前端 未结 1 2029
渐次进展
渐次进展 2020-12-17 07:36

I\'m trying to create in a single box, two arrows, one as a pointer and the other one into the box just behind.

Can not find the way to get the arrow right behind.

相关标签:
1条回答
  • 2020-12-17 07:51

    I prefer using inline-blocks over absolute positioning. Also, :before and :after create child elements (inside) the element you specify them on (at the beginning and end). For this, it would probably be best to have a wrapper (or inner) block, like so:

    <div class="arrow">
        <div class="inner-arrow">
            FLECHA
        </div>
    </div>
    

    Then the inner block is going to get most of the styling, as the wrapper is primarily there to contain the :before and :after. The wrapper (.arrow) needs to have font-size: 0 (or some other method to make the white-space around the inner block, .inner-arrow, go away).

    .arrow {
        font-size: 0;
    }
    .inner-arrow {
        width:210px;
        height:40px;
        display: inline-block;
        background-color:#CBCBCB;
        text-align:center;
        font-size:20px;
        font-weight:bold;
        line-height:40px;
        vertical-align: middle;
    }
    

    Most of the styles for .arrow:before and .arrow:after will be the same, so we'll group those. Then specify the differences below (they have to be below to override the common styles).

    .arrow:before,
    .arrow:after {
        content:'';
        display: inline-block;
        width:0;
        height:0;
        border:20px solid transparent;
        vertical-align: middle;
    }
    .arrow:before {
        border-top-color: #CBCBCB;
        border-bottom-color: #CBCBCB;
        border-right-color: #CBCBCB;
    }
    .arrow:after {
        border-left-color: #CBCBCB;
    }
    

    This is all in the a fiddle.

    0 讨论(0)
提交回复
热议问题