2012-02-12 9 views
0

私のウェブサイトのサインアップフォームでは、フォームのツールチップを作成したいと思っていますが、css3から作成された矢印が必要です。私はこの種のことをやり遂げる方法を知っているわけではありません。矢印がフォームの各行を指している

入力:フォーカスの場合、三角形(CSS3でレンダリングされた)は、遷移でその入力テキストフィールドを指すように上または下に移動します。これは実現可能ですか?どうやって?ありがとうございました。

jQueryやJavaScriptではなく、CSSから完全に作りたいと思います。帯域幅を使わないようにできるだけJavaScriptを使わないようにしています。

:focusを組み込むセレクタのみ :focus擬似セレクターを超えた子孫要素を選択することができますので、あなたはJavaScriptをせずに、厳密にそれを行うことができない、と input要素が 要素です。

答えて

1

あなたは国境を経由して比較的容易に三角形を行うことができます。 This demoはおそらく私のお気に入りですが、CSSでチャット/ツールチップのバブルを作成することになります。あなたはしかし、それよりも多くの創造的な取得することができます

: - それは単なるテキストだし、適切に縮小さと実際にそれをgzipで圧縮されたhttp://jsfiddle.net/czuxH/

を私には、JavaScriptの最小限のスニペットを切り出すことにより、帯域幅を節約についてはあまり心配しないだろうあまり帯域幅ではありません。アニメーションをトリガして矢印を配置するには、ここでJSが必要になります(ただし、CSS3アニメーションを使用してトランジションを行うことができます)。

+0

大丈夫、良いアドバイス – Matt

0

また、input要素がに置き換えられたため、擬似要素を使用することはできません。要素。

JavaScriptののタッチで行うことができます。

var input = document.getElementsByName('some_input')[0], 
    parent = input.parentNode, 
    bubble = document.createElement('div'); 

bubble.className = 'bubble'; 
bubble.textContent = 'Your text.'; 
parent.appendChild(bubble); 

input.addEventListener('focus', function() { 
    parent.className += ' focus'; 
}); 

input.addEventListener('blur', function() { 
    parent.className = parent.className.replace(/\bfocus\b/, ''); 
}); 
+0

"フォーカスは子孫要素のみを選択でき、入力要素は空要素です。" ... 何?擬似クラスは子孫を選択しません。それは子孫のコンビネータが行うことです。 – BoltClock

+0

@boltええ、私のために悪い言葉遣い。 – alex