1

こんにちは、div レイヤーの php からのさまざまなエラー メッセージを使用css pseudo classes :beforeしてエコーするのに問題があります。:adter

の横にinput fieldを表示したいと思いますdiv layer。したがってz-index method、そのdivはボディの前にあるため、使用します。

今私の問題は、文字列の長さとは異なる長さでdivレイヤーが表示されることです。別の質問では、矢印に余分な div を使用し、div レイヤーを使用して両方を 1 つに結合する代わりに、誰かがヒントをくれました。そのため、Web で使用するヒントを見つけpseudo classesspeechbubble. 私がそれを探したとき、ほとんどどこでも同じであることがわかりました。

div レイヤーが相対オブジェクトになり、矢印が子オブジェクトになります。私の場合は、逆にする必要があります。fixed position入力フィールドの隣にあるため、矢印は相対オブジェクトでなければなりません。長さはdiv layer可変ですが、矢印の左側に追加する必要があります。

だから私が抱えている問題は、次のcssように設定するとdivレイヤーが表示されないことです:

.wrapper #header #navline form .erm { //the div layer for the arrow that will be placed next to the input field
    position:absolute;
    z-index:2;
    width: 0px;
    margin-left: -25px;
    margin-top: -10px;
    height: 0px;
    border-top: 20px inset transparent;
    border-left: 22px dashed #f23;
    border-bottom: 20px inset transparent;
}
.wrapper #header #navline form .erm:before { // to border arrow
    content:"";
    position:absolute;
    z-index:2;
    margin-left: -22px;
    margin-top: -17px;
    width: 0px;
    height: 0px;
    border-top: 17px inset transparent;
    border-left: 19px dashed #f2f2f2;
    border-bottom: 17px inset transparent;
}
.wrapper #header #navline form .erm.left { //the wrapper with the text that should be append left to the arrow
    content:"";
    color: #F23;
    position: absolute;
    z-index: 2;
    height: 26px;
    padding:12px; 
    white-space: nowrap; 
    line-height: 26px;
    font-family:Arial, Helvetica, sans-serif;
}

ここにhtmlがあります:

<?php if (empty($errors['a']) === false){?>
    <input class="error" type="text" id="a" name="a" value="<?php echo isset($a) ? $a : '';?>" />
<div class='erm'>
    <?php echo $errors['a'][0];?>
</div>
<?php }?>

アーカイブしたいものを示すためにいくつかのスクリーンショットを作成しました。

これは次のようになります。

元

わかりました、これは私が以前のように見えるものです。写真のように、赤い矢印、上の灰色のレイヤー、テキスト用の div レイヤーがありますが、まったく表示されません。

したがって、divレイヤーを相対オブジェクトとして設定すると、strlenが以前に配置したバージョンよりも長い場合に発生します。

ex2

または strlen が短い場合:

ex3

私を助けてくれる人がいれば、本当に感謝しています。

どうもありがとう。

4

1 に答える 1

2

必要なものはほぼ揃っていると思います。欠けている唯一の詳細は、バブルの配置方法です。適切なプロパティのみを設定してみてください

.wrapper #header #navline form .erm.left { 

  right: 15px;

これにより、右の境界線が必要な場所に固定され、幅が変更された場合、移動するのは左側になります。

注:上記のピクセル値は確認していません。これは単なる例です

編集

私はあなたのフィドルで最善を尽くしました:

アップデート

入力を追加して、あなたが望むものに近づけました。次に、div (テキストがある場所) を入力位置に完全に一致するように配置しましたが、正しいプロパティを使用しています。これにより、テキストの長さを気にする必要がなくなります。矢印のためのスペースを残すことだけを考慮する必要があります。

最後に、矢印をあるべき場所に置きます。

「父」要素に対して疑似要素 (::after など) を配置することはできません

于 2013-03-15T07:41:51.547 に答える