2016-05-17 3 views
-1

積み上げた縦の内側のバーが必要です。私はそれを正しい位置に置かなかった。これは私がそれをしたい方法です: bars with angled text積み重なったバーCSS

これは私のコードと出力されます:

.colWrapper{ 
 
    height:200px; 
 
    width:100px; 
 
    position:relative; 
 
    border:1px solid #ccc; 
 
} 
 
.barContainer{ 
 
    position:absolute; 
 
    bottom:0; 
 
    width:100%; 
 
} 
 
.bar{ 
 
    widith:100%; 
 
    padding:10px; 
 
    transform: rotate(90deg); 
 
    text-align:center; 
 
    margin:0 
 

 
}
<div class="colWrapper"> 
 
    <div class="barContainer"> 
 
     <div class="bar" style="background-color:#b4cde2;">Software</div> 
 
     <div style="clear:both;"></div> 
 
     
 
     <div class="bar" style="background-color:#7ca7cc;">Banking</div> 
 
     
 
    </div> 
 
</div>

答えて

1

あなたは-90degを使用しても、transform-originを使用する必要があります。

.colWrapper { 
 
    height: 200px; 
 
    width: 100px; 
 
    position: relative; 
 
    border: 1px solid #ccc; 
 
} 
 
.barContainer { 
 
    bottom: 0; 
 
    width: 100%; 
 
} 
 
.bar { 
 
    padding: 10px; 
 
    transform: rotate(-90deg); 
 
    text-align: center; 
 
    margin: 0; 
 
    left: -25px; 
 
    transform-origin: right bottom; 
 
    position: absolute; 
 
    width: 100px; 
 
    bottom: 120px; 
 
} 
 
.bar:first-child { 
 
    left: -80px; 
 
}
<div class="colWrapper"> 
 
    <div class="barContainer"> 
 
    <div class="bar" style="background-color:#b4cde2;">Software</div> 
 
    <div class="bar" style="background-color:#7ca7cc;">Banking</div> 
 
    </div> 
 
</div>

第2の方法:

.colWrapper { 
 
    height: 200px; 
 
    width: 100px; 
 
    position: relative; 
 
    border: 1px solid #ccc; 
 
} 
 
.barContainer { 
 
    bottom: -5px; 
 
    width: 100%; 
 
    transform: rotate(-90deg); 
 
    position: absolute; 
 
    left: 5px; 
 
} 
 
.bar { 
 
    padding: 10px; 
 
    text-align: center; 
 
    margin: 0 0 15px; 
 
    sposition: absolute; 
 
} 
 
.bar:first-child { 
 
    left: -80px; 
 
}
<div class="colWrapper"> 
 
    <div class="barContainer"> 
 
    <div class="bar" style="background-color:#b4cde2;">Software</div> 
 
    <div class="bar" style="background-color:#7ca7cc;">Banking</div> 
 
    </div> 
 
</div>

+1

あなたの答えのおかげで、我々はほとんど到達、しかし、私は、積み上げグラフのようにそれをしたい、あなたは私が添付画像を参照してくださいすることができます。 –

1

また、書き込みモードとフレックスボックスを見てみることができます。

https://developer.mozilla.org/fr/docs/Web/CSS/writing-mode

div { 
 
    display: inline-flex; 
 
    flex-flow: column wrap; 
 
    height: 320px; 
 
    width: 270px; 
 
    vertical-align: middle; 
 
} 
 
span { 
 
    padding: 20px 5px; 
 
    background: #1E84C6; 
 
    -webkit-writing-mode: vertical-lr; 
 
    /* old Win safari */ 
 
    writing-mode: vertical-lr; 
 
    writing-mode: tb-lr; 
 
    text-align: right; 
 
    margin: 10px; 
 
    height: 100px; 
 
    width: 60px; 
 
    font-size: 30px; 
 
    line-height: 60px; 
 
} 
 
span:nth-child(3) { 
 
    height: 260px; 
 
} 
 
a { 
 
    display: inline-block; 
 
    text-decoration: none; 
 
    letter-spacing: 2px; 
 
    text-transform: uppercase; 
 
    font-family: helvetica; 
 
    color: white; 
 
} 
 
div + div a { 
 
    transform: scale(-1, -1); 
 
    /* reverse writing direction optionnal*/ 
 
    btext-align: left; 
 
    transform-origin: 1em 1.25em; 
 
} 
 
span:nth-child(2) { 
 
    background: #283F4F; 
 
} 
 
span:nth-child(4) { 
 
    background: #1DC685; 
 
} 
 
​-
<div> 
 
    <span> <a href>one</a></span> 
 
    <span> <a href>two</a></span> 
 
    <span> <a href>three</a></span> 
 
    <span> <a href>four</a></span> 
 
    <span> <a href>five</a></span> 
 
</div> 
 
or 
 
<div> 
 
    <span> <a href>one</a></span> 
 
    <span> <a href>two</a></span> 
 
    <span> <a href>three</a></span> 
 
    <span> <a href>four</a></span> 
 
    <span> <a href>five</a></span> 
 
</div> 
 
and so on ...

+0

本当に答えてくれてありがとう..しかし、私はよりインタラクティブにしたい、私は固定値でそれを望んでいない、後で私は動的な値でそれを変換したいので。ありがとう。 –

+0

@KiranJuvvalapalli私は値を更新する必要があると思います.pxを%に設定するか、min-width/min-heightを使用します。コードは今あなたのものです;)それで遊ぶ。ここでは、ライブとフォークhttp://codepen.io/gc-nomade/pen/jqozRBで再生するペンです、右下のエクスポートボタンからそれのジッパーをダウンロードすることができます –

関連する問題