2012-02-12 92 views
0

在我的網站註冊表單中,我想爲我的表單創建一個工具提示類型的事物,但我想要一個由css3構建的箭頭。我沒有模糊的線索如何做這種事情。指向每一行表單的箭頭

本質上,當輸入:焦點時,一個三角形(用CSS3呈現)會在一個轉換中向上或向下移動,以指向該輸入文本字段。這是可行的嗎?怎麼樣?謝謝。

我想使它完全出於CSS,而不是jQuery或JavaScript。我儘量避免使用JavaScript,以免使用帶寬。

回答

1

您可以通過邊框相對容易地做三角形。 This demo可能是我最喜歡的主題,它通過在CSS中創建聊天/工具提示泡泡。

你可以得到很多比這更創意,雖然:http://jsfiddle.net/czuxH/

我不會太擔心切割出的JavaScript的最小片段節省帶寬 - 它只是文字,並適當微細化以及gzip壓縮它真的帶寬並不多。您將需要JS來觸發動畫並定位箭頭(儘管您可以使用CSS3動畫進行轉換)。

+0

好的,很好的建議 – Matt 2012-02-12 23:27:52

0

你不能做到嚴格沒有JavaScript,因爲選擇合併:focus只能選擇後代元素超出:focus僞選擇器,input元素元素。您也不能使用僞元素,因爲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 2012-03-02 16:42:19

+0

@bolt是的,我的名字不好的措辭。 – alex 2012-03-02 19:16:51