2017-10-31 19 views
0

左右に矢印のあるdivを作成しようとしています。背景なし、境界線のみ。このような何か:CSSで三角形の枠線を使ってdivを作成する

enter image description here

私はタグの後に前と:: ::用いて充填背景色と類似したdiv要素を作成することができています。しかし、境界線だけが私が達成できないものです。それはCSSでのみ行うことができますか?

https://jsfiddle.net/1g16x8p7/1/

HTML:

<div class="wizard"> 
    <a class="item"> 
    </a> 
</div> 

CSS:

.item { 
    display: inline-block; 
    padding: 15px; 
    padding-left: 25px; 

    /*default styles*/ 
    background-color: green; 
    position: relative; 
    } 


.item:before, 
.item:after { 
     content: ""; 
     height: 0; 
     width: 0; 
     border-width: 15px 0 15px 10px; 
     border-style: solid; 

     position: absolute; 
     left: 100%; 
     top: 0; 
    } 


.item:before { 
      border-color: transparent transparent transparent white; 
     left: 0; 
     } 


.item:after { 
     border-color: transparent transparent transparent green; 
     } 
+0

作成した内容を表示できますか?塗りつぶされた背景? – blackandorangecat

+1

ウェブ(HTML)は箱で作られていますので、あなたができることは、2つのdivを結合する 'transform:skew(45deg);です。また、コンテンツがその不規則な形をどのように満たすのか考える必要があります。 SVGは、あなたが形に夢中になるなら、あなたが望むものです。 – zgood

+0

@blackandorangecat JSFiddleを追加しました。 –

答えて

1

あなたは::before::after隣接する二辺にボーダーを持つ(例えば上と右)と、その後transform: rotateposition: absoluteを使用することができます左と右の部分を作成する

<div class="arrow"></div>

.arrow { 
    height: 75px; 
    width: 200px; 
    border-top: 4px solid black; 
    border-bottom: 4px solid black; 
    position: relative; 
} 
.arrow::before, .arrow::after { 
    content: ""; 
    border-top: 4px solid black; 
    border-right: 4px solid black; 
    height: 55px; 
    width: 55px; 
    position: absolute; 
    transform: rotate(45deg); 

} 

.arrow::before { 
    top: 8px; 
    left: -30px; 
} 

.arrow::after { 
    top: 8px; 
    right: -30px; 
} 

ここan exampleです。

+0

パーフェクト。ありがとう! :) –

関連する問題