2010-09-02 60 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的元素。