0

CSSでプログレスバーを作成しようとしていますが、一部のコンポーネントのスタイル設定に問題があります。ホバリングすると、ボックスで矢印の色が変わるように見えません。

ここに画像の説明を入力してください

これはボタンの1つのhtmlです

  <li>
  <div class="arrow-in"></div>
  <div class="outerContainer done">
      <div class="innerContainer">
          <div class="element"><a href="#">Step 2</a></div>
      </div>
  </div>
  <div class="arrow-right"></div>
  </li>

これは矢印のCSSです

.arrow-right {
    width: 0;
    height: 0;
    border-top: 30px solid transparent;
    border-bottom: 30px solid transparent;
    border-left: 20px solid #EBEBEB;
    display: inline-block;
    float: left;
}


.arrow-in {
    width: 0;
    height: 0;
    border-top: 30px solid transparent;
    border-bottom: 30px solid transparent;
    border-left: 20px solid #FFF;
    display: inline-block;
    float: left;
    background-color: #EBEBEB;
}

http://jsfiddle.net/waspinator/sxC8e/

これはこの効果のための合理的なアプローチですか、それとも私は完全に異なることをするべきですか?

編集:

私は提案どおりに行い、クラスの前後に使用しました。

http://jsfiddle.net/waspinator/tqVjX/

テキストを移動せずに、円を中央右に配置するにはどうすればよいですか?

EDIT2:

別の方法でOKですが、1行以上のテキストを取得できなくなりました

http://jsfiddle.net/waspinator/fwN7P/8/

4

2 に答える 2

1

目的の効果を実現する方法は次のとおりです。

http://jsfiddle.net/waspinator/fwN7P/11/

html

<button>
    <a href="">one line</a>
    <i></i>
</button>
<button id="current">
    <a href="">two lines of text</a>
    <i></i>
</button>
<button>
    <a href="">three lines of text in this one </a>
    <i></i>
</button>
<button>
    <a href="">the most extreme case with four lines of text</a>
    <i></i>
</button>

css

a{
    text-decoration: none;
    color: black;
}

button {
    background:#ddd;
    border:0;
    font-weight:bold;
    cursor:pointer;
    position:relative;
    padding:0px 50px 0px 15px;
    width: 150px;
    height: 60px;
    font-size: 0.7em;
    vertical-align: top;

}

button:hover{
    background: gray;
}

button:hover:before{
    border-top:30px gray solid;
    border-bottom:30px gray solid;
}

button:hover:after{
    border-left:15px gray solid;
}


#current {
    background: red;
}

#current:before
{
    border-top:30px red solid;
    border-bottom:30px red solid;
}

#current:after
{
    border-left: 15px solid red;
}


#current .element a {
    color: #FFFFFF;
}


button:before {
    content:'';
    border-top:30px #ddd solid;
    border-bottom:30px #ddd solid;
    border-left:15px #fff solid;
    position:absolute;
    top:0;
    left:0;
}
button:after {
    content:'';
    border-top:30px #fff solid;
    border-bottom:30px #fff solid;
    border-left:15px #ddd solid;
    position:absolute;
    top:0;
    right:0;
}
button i:after {
    content:'\2713';
    width:25px;
    color: white;
    height:25px;
    font-size: 20px;
    background: green;
    border-radius: 25px;
    line-height: 25px;
    position:absolute;
    top:0;
    bottom:0;
    margin:auto;
    right:20px;
}
于 2012-12-31T17:41:23.683 に答える
0

これを試して :

それはうまくいくはずだった

Jsbin デモ

于 2012-12-31T04:20:44.390 に答える