css-使用属性选择器还是设置类名?

css-使用属性选择器还是设置类名?,css,Css,我们应该使用 css: input[type='submit']{...} 还是为输入标记设置类名 html: <input type="submit" class="submit"> css: .submit{...} html: css:.提交{…} 如果希望支持IE6,则应使用类名而不是属性选择器 这篇文章很有趣: 是的,正如Sarfraz所说,如果你想要浏览器兼容性,你应该选择类名,但是属性选择器提供了对任何元素的广泛控制。在我看来,这完全取决于你所应用的风格——当然

我们应该使用

css: input[type='submit']{...}
还是为输入标记设置类名

html: <input type="submit" class="submit">
css: .submit{...}
html:
css:.提交{…}

如果希望支持IE6,则应使用类名而不是属性选择器

这篇文章很有趣:


是的,正如Sarfraz所说,如果你想要浏览器兼容性,你应该选择类名,但是属性选择器提供了对任何元素的广泛控制。

在我看来,这完全取决于你所应用的风格——当然,除了其他人已经提到的一般浏览器支持因素之外。例如,如果您正在应用的内容是设计的绝对核心部分(例如布局),那么使用类名可能是最安全的

然而,如果你所应用的是一种“装饰性的装饰”,特别是,如果旧版本的IE都不支持CSS(首先考虑边界半径),那么最好保持标记干净并使用属性选择器


在类似的情况下,您可能会认为通过javascript逐步增强是值得的,也就是说,保持标记整洁,但使用JS向元素添加类或内联样式。

但是如果IE6甚至被供应商弃用,我们为什么要继续支持它?到了报废旧车、重修旧路、更换旧水管和旧电话线的时候。。。等等,这些东西从来都没修过我意识到这是一场宗教辩论,支持还是不支持IE6,但对于今天的大多数人来说,IE6并不是坚持向后兼容的好理由。但是+1表示有效点。我只是不同意这一点。@drachenstern:支持IE6还是忽略IE6是个人的选择。我尽可能支持:)+1到德拉钦斯特恩。人们不得不让IE6死去。我仍然对一些人真的使用它感到惊讶。@main错误:我们都讨厌IE6,有些人甚至讨厌所有版本的IE,但如果我们的用户正在使用它,我们什么也做不了。(其次,由OP决定他是否要支持IE6:)我肯定没有说别的。我更像是一个普通的咆哮者你说的控制范围大是什么意思?我想他的意思是,属性选择器允许你进行更精细的选择,而不需要在html中添加额外的/冗余的类。我喜欢这个问题,我也想知道这里的“最佳实践”是什么,以及为什么。我并不特别关心旧IE的兼容性问题。我特别感兴趣的是设计
标签的“正确”方式是什么:通过
[role=button]
选择是否可以,或者是否有必要添加
属性@StoneHeart,您是否可以编辑您的问题,将此特定示例添加到
角色
属性中,以防仍有人需要添加到讨论中?