2012-02-13 45 views
1

通常我只會用使用字母數字 - 和_在任何HTML class和id屬性,但我不知道是否有可能將其包含在屬性的中間#,例如:使用#一個CSS ID聲明中

<div id = "my_css_id_#f4ed11">

我wont't是瞄準了這個通過CSS,這純粹是爲了javasrcipt。

注意的原因,我問這不是因爲我想這樣做,而是因爲有人做了一些相關的PHP代碼,它將使這部分項目更容易。

謝謝

回答

4

當然可以。它按照HTML5有效。

你只需escape the character in a selector (for use in CSS or JavaScript)。對於#這個角色,這很簡單;你可以使用\#

這裏是一個工具,它會告訴你如何逃脫任何字符在CSS/JS選擇:http://mothereff.in/css-escapes#0foo%23bar在這個頁面:

<script> 
    // document.getElementById or similar 
    document.getElementById('foo#bar'); 
    // document.querySelector or similar 
    $('#foo\\#bar'); 
</script> 

附:關於ID或class值奇怪字符的主題:http://mathiasbynens.be/notes/html5-id-class

+1

很高興知道,但我絕不會允許#在我的ID中,太容易造成錯誤... – 2012-02-13 19:41:45

0

這將是最好做試驗和錯誤,看看它是否工作。但是,就僞選擇符而言,#符號應該沒有問題。要選擇你會使用:

$("#my_css_id_#f4ed11") 
+0

這個答案不正確。你提出的選擇會試圖選擇具有兩個'ID =「my_css_id_」'和'ID =「f4ed11」'元素,這在HTML中是不可能的。 (假設'$'是jQuery的,或使用'document.querySelectorAll'時可用任何其他JavaScript庫。'的document.getElementById( '#my_css_id_ f4ed11')'會的工作,雖然)。 – 2012-02-13 19:41:20

1

我不會這樣做。因爲#在編程/編碼方面已經超載,所以通過CSS或甚至Javascript訪問帶有ID#...#...的元素是很困難的。

這聽起來像你想存儲一些數據塊。您知道W3C標準允許以data-開頭的屬性是正確的嗎?

舉例來說,你可以保持一段與元素本身相關的數據:

<p data-name="John Jones">I like alliteration.</p> 

本文將詳細介紹數據有效屬性。 http://ejohn.org/blog/html-5-data-attributes/