2010-09-02 63 views
4

我們應該使用css - 使用屬性選擇器還是設置類名?

css: input[type='submit']{...} 

或輸入標籤設置類的名字嗎?

html: <input type="submit" class="submit"> 
css: .submit{...} 
+0

我喜歡這個問題,我也希望知道這裏被認爲是什麼「最佳實踐」,爲什麼。我並不特別關心舊IE的兼容性問題。我特別感興趣的是什麼是「正確」的方式來設計一個''標籤:可以通過'[role = button]'來選擇,還是它需要添加一個'class'屬性? @StoneHeart,你是否可以編輯你的問題來添加這個具有'role'屬性的特定示例,以防有人還有什麼要添加到討論中? – Alexey 2012-09-20 11:01:52

回答

5

,如果你想支持IE6您應該使用類名而不是屬性選擇的。

這篇文章很有意思:

+2

但是,即使從供應商不推薦使用IE6,我們爲什麼還要繼續支持它?出現了舊車報廢,舊路重新安裝,舊水管更換以及舊電話線......等等,這些都沒有得到修復。 ~~我意識到這是一場宗教辯論,支持IE6或不支持IE6,但對於今天的大多數人來說,IE6並不是堅持向後兼容的好理由。但是對於一個有效的點,+1。我只是不同意這一觀點。 – jcolebrand 2010-09-02 15:30:05

+0

@drachenstern:無論你想支持IE6還是忽略它,這都是個人選擇。我儘可能地支持它:) – Sarfraz 2010-09-02 15:31:12

+1

+1到drachenstern。人們不得不讓IE6死亡。我仍然對一些人真的使用它感到驚訝。 – 2010-09-02 15:41:07

0

是的,正如Sarfraz說,如果你去瀏覽器兼容,你應該去上課的名字,但屬性選擇提供了廣闊的範圍內控制的任何元素。

+0

你是什麼意思的廣泛的控制範圍? – Sarfraz 2010-09-02 15:35:11

+2

我認爲他意味着屬性選擇器允許您進行更細粒度的選擇,而無需使用額外/冗餘類來胡亂添加html。 – 2010-09-02 16:52:14

0

國際海事組織,這一切都取決於你應用的是什麼風格 - 當然,除了其他人已經提到的一般瀏覽器支持因素之外。例如,如果你正在申請的是你設計的絕對核心部分(例如佈局),那麼堅持使用類名是最安全的。但是,如果你正在應用的是「裝飾性的蓬勃發展」,並且特別是,如果它的CSS甚至在老版本的IE中甚至都不支持(認爲邊界半徑,一開始),那麼它就是更好地保持你的標記乾淨,並使用屬性選擇器。

在類似的情況下,你可能認爲值得逐步加強通過javascript - 即留下標記漂亮乾淨,但添加一個類或內聯樣式到使用JS的元素。