0

div内にテキストのあるスパンがあります。そのスパンの前で、2ピクセルの線を左側の端に配置します。テキストの後に、親要素の右端に同じような線を配置したいと思います。

現在のマークアップ:

<div style="width: 400px;">
    <span class="label" style="padding-left: 40px;">This is my text</span>
</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

期待される結果:

----- This is my text --------------------------

私の問題の最善の解決策は何ですか?

テキストの後の行に余分なスパンを使用しようとしました。それを正しくすることができませんでした。スパンが残りの幅を埋めるのに基づいていますか?。私の試みはここで見つけることができます

アップデート:

親divには、背景と高さのグラデーションカラーがあります。テキストの背景色はAFAIKでは使用できません。

<div style="
    background-image: none;
    background-color: #99D166;
    background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #C0E3A1), color-stop(3%, #A6D77A), color-stop(100%, #8CCB52));
    background-image: -webkit-linear-gradient(top, #C0E3A1, #A6D77A 3%, #8CCB52);
    background-image: linear-gradient(top, #C0E3A1, #A6D77A 3%, #8CCB52);
    width: 400px;
    height: 40px;">
4

5 に答える 5

2

HTML

<span class="label">You're Text Message</span> 

CSS

span.label:after{content:"------------";padding-right:15px;letter-spacing:-1px;color:#3399ff;}
span.label:before{content:"------------";padding-left:15px;letter-spacing:-1px;color:#3399ff;}

例: http: //jsfiddle.net/2qLptucL/1/

于 2015-10-10T09:35:25.567 に答える
1

あなたはこのように書くことができます:

CSS

.label {
    margin-left: 40px;
    display:inline-block;
    height: 20px;
    background:#fff;
}

.parent {
    border-bottom:2px solid red;
    width: 400px;
    height:9px;
}

これをチェックしてくださいhttp://jsfiddle.net/yDLuK/3/

于 2012-07-24T10:17:29.080 に答える
0

あなたはpositiongと同様にあなたの望む結果を達成することができます:-

CSS

.label {
    background: white;
    float: left;
    height: 20px;
    margin-left: 30px;
    position: relative;
    top: -8px;
}

.line {
    height: 2px;
    background-color: red;
    display: block;
    margin-top: 9px;
    margin-bottom: 9px;
}

HTML

<div style="width: 400px;">
    <span class="label">This is my text</span>
    <span class="line"></span>
</div>

http://jsfiddle.net/yDLuK/6/

于 2012-07-24T10:18:01.793 に答える
0

これを見てください:

http://jsfiddle.net/WVzNf/

Shailender Arora のアイデアを作り直して、代わりにボーダー ダッシュを使用しました。

もう 1 つの方法は、境界線を削除して、代わりに背景画像を使用することです。そうすれば、その外観を完全に制御できます。

于 2012-07-24T10:45:08.990 に答える
0

あなたのフィドルはこれを行うのに近づいています.1つの要素を他の要素の上に配置するだけです(純粋なCSSでこれを行いたい場合)。もう 1 つの方法は、line 要素を 2 つに分割することです。1 つはテキストの前に、もう 1 つはテキストの後に使用します。

負のマージンを使用して行の上に移動することもできますが、この のようにテキストと行要素をコンテナー要素で囲み、コンテナーで相対位置を使用し、テキストと行では絶対位置を使用するのが理にかなっている場合があります。コンテナ要素内。

HTML:

<div id="container">
    <span class="line"></span>
    <span class="label">This is my text</span>
</div>​

CSS:

#container {
width: 400px;
position: relative;
}

.label {
    position: absolute;
    left: 40px;
    top: 0px;
    padding: 0 6px 0 6px;
    height: 20px;
    background-color: #fff;
}

.line {
    position: absolute;
    left: 0;
    top: 0.5em;
    height: 2px;
    width: 100%;
    background-color: red;
    display: block;
}​
于 2012-07-24T10:23:54.780 に答える