Skip to content
快看这页儿写了啥...

id 选择器和 class 选择器的使用场景分别是什么?

题干

  • id 选择器

  • class 选择器

题解

id 选择器和 class 选择器都是简单选择器的一种,它们都可以用来选取 HTML 元素,并为它们应用样式。但是它们也有一些本质的区别,主要体现在以下几个方面:

  • 唯一性:id 选择器以 # 开头,后面跟着元素的 ID 名称,例如 #intro 选择器会选取 ID 为 intro 的元素。ID 是元素的唯一标识符,每个元素只能有一个 ID,每个页面中也只能有一个相同的 ID。class 选择器以 . 开头,后面跟着元素的类别名称,例如 .red 选择器会选取类别为 red 的所有元素。类别可以用来对元素进行分组,每个元素可以有多个类别,每个页面中也可以有多个相同的类别。
  • 权重:权重是 CSS 中用来决定哪些样式会被应用到元素上的一个概念,权重越高的样式会覆盖权重低的样式。id 选择器的权重是 100,class 选择器的权重是 10,元素选择器的权重是 1。所以如果一个元素同时被 id 选择器和 class 选择器选取,那么 id 选择器的样式会优先生效。
  • 使用场景:id 选择器和 class 选择器都可以用来为元素添加样式,但是它们的使用场景不同。id 选择器适合用来为页面中独一无二的元素添加样式,例如导航栏、页脚、logo 等;class 选择器适合用来为页面中具有相同特征或功能的元素添加样式,例如按钮、卡片、列表等。

实践中,我们常说要使用 class 选择器而避免使用 id 选择器。主要考虑到下面几点:

  • 可复用性:class 选择器可以用来为多个元素添加相同的样式,而 id 选择器只能用来为一个元素添加样式。这样可以减少代码的重复,提高代码的可复用性和可维护性。
  • 灵活性:class 选择器可以为一个元素添加多个类别,而 id 选择器只能为一个元素添加一个 ID。这样可以增加元素的样式组合,提高代码的灵活性和扩展性。
  • 优先级:id 选择器的优先级高于 class 选择器,如果一个元素同时被 id 选择器和 class 选择器选取,那么 id 选择器的样式会覆盖 class 选择器的样式。这样可能会导致样式冲突,难以调试和修改。
  • 语义化:class 选择器可以用来表示元素的类别或功能,而 id 选择器只能用来表示元素的唯一标识符。这样可以增加代码的语义化,提高代码的可读性和可理解性。

相关

CSS 选择器常见的有几种?

伪类选择器有哪些?

伪元素和伪类的区别?

CSS 中是否存在父选择器?如何通过子元素选取父元素?

选择器的优先级是如何计算的?

浏览器是怎样解析 CSS 选择器的?

贡献者

isboyjc's avatar isboyjc

浏览量(PV)  次  ·  独立访客(UV)  人次
不正经的前端 | 八股 · 欢迎 star ⭐