0

我以为我了解 css 文档中的 id 与类。据我所知,html 文档中应该只有一个 id 元素实例和许多类元素。现在我正在查看 Microsoft 驱动的 Site.css 模板,该模板是在每个新的 mvc3 项目上生成的,我看到有 .page 元素而不是 #page ?我在这里错过了什么吗?

4

4 回答 4

1

仅将 id 用于 javascript 并且仅将类用于 CSS 已变得很普遍。

这背后有很多原因:

  • 使用JS选择ID非常快
  • ID比类具有更高的特异性
  • 这是拆分 JS 和 CSS 的便捷方式

举个例子:

<a class='btn btn-primary' id='alert' href='#'>Click Me</a>

将是一个典型的用途,其中btnbtn-primary类用于 CSS,但alertid 将用于 JS。

这意味着可以在不丢失 JS 链接的情况下重新设置链接的样式,并且可以在不更改样式的情况下更改其行为。

于 2012-11-04T11:21:54.037 回答
1

使用类时更容易维护良好的级联。Id 是一种将样式链接到文档的非常具体的方式。此外,目前您可能只有一个元素,因此使用 id 似乎是可行的方法,但如果在不久的将来您要切换到两个元素怎么办。

CSS 特异性

于 2012-11-04T11:22:38.070 回答
0

如果开发人员#id正在寻找将一些 javascript 应用于该元素,则通常会使用它,并且 ID 应该是唯一的,.whatever而您可以多次使用它的类也是如此。

如你所说

微软可能正在使用.page,因为它必须应用于多个事物,所以它根本不使用#page,它并没有真正产生影响,是的,但就具体而言,#id选择器的优先级高于.class

于 2012-11-04T11:20:55.893 回答
0

完全不知道微软驱动的 Site.css 模板;但坦率地说,我不会从他们那里得到任何关于 CSS 的建议:他们的浏览器在采用与样式相关的国际标准方面一直是所有主要浏览器中最差的。

给定页面上的任何特定项目都应该只有一个 id;但几乎可以肯定不止一个仍然可以工作......至少用于样式(尝试使用脚本:p)。

见鬼,我刚刚把微软主页放到了w3c

html 验证器:28 个错误,581 个警告

和 w3c CSS 验证器

我们发现了以下错误 (68)

尽管可以说许多 CSS 错误可能是由相当可接受的黑客生成的,这些黑客旨在解决设计不佳的浏览器中的问题……主要是微软的!

即便如此,我对这个 Microsoft 驱动的 Site.css 模板很感兴趣:您有机会发布链接吗?

作为附加说明:CSS 中的 ID 总是比 class 具有更高的优先级,无论顺序如何。

于 2012-11-04T11:24:49.953 回答