Aligning css arrow boxes

前端 未结 6 1917
深忆病人
深忆病人 2021-01-29 02:08

My question is similar to this question: Arrow Box with CSS But instead of only 1 box I need to align several boxes. And still be able to see the arrow on all boxes.

In

相关标签:
6条回答
  • 2021-01-29 02:39

    Just add a z-indexto your .arrow:before. Here is the live version http://jsfiddle.net/LHHzt/13/

    .arrow:before {
        content: '';
        position: absolute;
        top: 0px;
        left: 129px;
        width: 0;
        height: 0;
        z-index:2;
        border: 50px solid transparent;
        border-left: 12px solid #999;
    }
    

    Works with as many box as you want :)

    0 讨论(0)
  • 2021-01-29 02:39

    try this

    http://jsfiddle.net/casperskovgaard/LHHzt/1/

    .arrow {
        width: 128px;
        height: 100px;
        background-color: #f0f0f0;
        border: 1px solid #999;
        position: relative;
    }
    .arrow:after {
        content: '';
        position: absolute;
        top: 0px;
        left: 128px;
        width: 0;
        height: 0;
        border: 50px solid transparent;
        border-left: 12px solid #f0f0f0;
    }
    .arrow:before {
        content: '';
        position: absolute;
        top: 0px;
        left: 129px;
        width: 0;
        height: 0;
        border: 50px solid transparent;
        border-left: 12px solid #999;
    }
    
    0 讨论(0)
  • 2021-01-29 02:40

    add this :

    .arrow:first-child{
     z-index:10;   
    }
    

    JsFiddle with correction

    0 讨论(0)
  • 2021-01-29 02:42

    Just add a margin to the arrow...

    .arrow {
        float: left;
        width: 128px;
        height: 100px;
        background-color: #f0f0f0;
        border: 1px solid #999;
        position: relative;
        margin-right: 15px;
    }
    

    http://jsfiddle.net/LHHzt/11/

    Or change z-index to display above if you want them to overlay

    0 讨论(0)
  • 2021-01-29 02:57

    Just adding a margin to the arrow resolves the problem.

    See this JSFiddle : http://jsfiddle.net/LHHzt/9/

    I just added a

    margin-right: 15px;
    
    0 讨论(0)
  • 2021-01-29 02:59

    if you change the z-index of the after psudeo element to 2 and then the before element to 1 then it should work as you intend:

    .arrow {
        float: left;
        width: 128px;
        height: 100px;
        background-color: #f0f0f0;
        border: 1px solid #999;
        position: relative;
        margin-right:15px;
    }
    .arrow:after {
        content: '';
        position: absolute;
        top: 0px;
        left: 128px;
        width: 0;
        height: 0;
        border: 50px solid transparent;
        border-left: 12px solid #f0f0f0;
    }
    .arrow:before {
        content: '';
        position: absolute;
        top: 0px;
        left: 129px;
        width: 0;
        height: 0;
        border: 50px solid transparent;
        border-left: 12px solid #999;
    }
    

    http://jsfiddle.net/peteng/LHHzt/15/

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