2011-04-23 35 views
1

我經常使用CSS ID或類來選擇Javascript中的元素。這些類中的許多類都只存在於該用例中,並且根本沒有任何樣式。區分樣式和Javascript的CSS類

我現在認真思考如果明確地標記這些類是有好處的。也許像是一個領先的下劃線(例如class="_field")。

事情是,我從來沒有聽說過這樣的做法。這是建議嗎?也許已經用於更大的項目?什麼樣的標記會有意義?我在某處讀到一個領先的下劃線可能有問題。我還可以使用什麼來輕鬆識別這些「僅限Javascript」類?

+1

前綴的所有JavaScript類與' js_'也許?前導下劃線是CSS的無效類名。雖然它可能仍然有效,但如果這些類不用於樣式。 – 2011-04-23 15:09:07

+4

領先的下劃線在類名稱的開頭非常有效。根據[語法](http://www.w3.org/TR/CSS21/grammar.html#scanner),「名稱」只是一個或多個「nmchars」的序列,下劃線是「nmchar 」。 – Pointy 2011-04-23 15:32:15

+0

@Pointy,+1;我在某個時候誤讀了[Syntax和基本數據類型](http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier),並沒有意識到。 ...哎呀。 =) – 2011-04-23 16:06:09

回答

4

您可以將其作爲個人編碼約定。該規範沒有聲明class屬性必須僅用於樣式,或僅用於腳本。你可以用它來以任何你想要的方式對你的元素進行分類,所以對你如何命名和組織你的類沒有限制。

-1

最好使用JavaScript來處理JavaScript,因爲元素只有一個唯一的id,而類可以應用於多個HTML元素。

+0

通常你想將一些JavaScript函數應用到多個元素,爲此你也想使用類。 – Wim 2011-04-23 15:14:17

+1

我不同意,類和ID在JS和CSS中填充相同的函數。所以,如果元素是唯一的,那麼使用一個ID,但是當你在JS中使用幾個元素時使用類是完全正確的。 – 2011-04-23 15:14:49

1

大部分時間我發現JS中使用的類名稱與我想在CSS中執行的樣式匹配。只要你正確地命名它們,只有CSS或JS才能使用類名是沒有什麼大不了的。

0

您可能需要使用HTML5建議的data-* attributes。他們甚至可以使用HTML4,但生成的代碼無效。

一點題外話,ExtJS的使用了「命名空間」爲自己的樹節點自定義屬性相當長的一段時間:

<div class="x-tree-node-el x-tree-node-leaf x-unselectable cls" 
    ext:tree-node-id="Foobar"> 

(他們應該改變,要data-ext-tree-node-id BTW)