开发者社区 问答 正文

为何推荐使用 class 而不用 id 来定义样式?

用 id 会导致什么问题吗?

展开
收起
杨冬芳 2016-06-02 11:40:01 2182 分享 版权
1 条回答
写回答
取消 提交回答
  • IT从业

    为什么css选择器钩子大多数用class?这个问题可仅从css的方面出发来回答:

    1、相对于class选择器,id选择器的权重实在太重了(100),这在一些项目中会造成灾难性的样式污染,以及权重陷阱。

    2、id在文档内必须是唯一的,而样式很多具有复用性。当然,使用id也意味着你的css选择器完全不需要嵌套:

    body #a{color:red} // 不必要的写法,除了额外增加选择器权重没有任何必要。

    a{color:red} // 这样即可

    至于为什么大多数js使用id作为钩子,主要因为js通过id查询dom的速度是最快的。

    id是不是一定会和js挂钩,这个是未必的,以下情况可能必须使用class:

    循环插入若干组件,不同组件内绑定dom相同Function时。

    2019-07-17 19:24:30
    赞同 展开评论
问答地址: