问答详情
源自:8-5 类和ID选择器的区别

为什么在一个HTML文档中能使用两次ID 选择器?

如下图:在图3中红色所标注的区域使用了两次ID选择器,图1中这两个ID选择器都起了作用,这是为什么?(这与在一个HTML 文档中只能使用一次ID选择器说法相违背) 图2 是代码部分。

    

57931ecc0001603b04080142.jpg

                                         图1

57931ecc00018af903340072.jpg

                                      图2

57931ecc0001158c04980146.jpg

                                                                   图3


提问者:慕粉3690804 2016-07-23 15:44

个回答

  • 囧ooo囧
    2017-06-23 21:18:34

    一个网页中出现2个以上同名的id选择器也是可以的,语法上可以啊,反正程序又没有报错!但如果页面涉及到js,就不好了。因为js里获取DOM是通过getElementById,而如果页面出现同一个id几次,这样就获取不到了。所以id要有唯一性。最后,成熟网站里,你很少看到css里用id选择器的,都是用class,id选择器留给写js的人用,这样避免冲突。

  • 囧ooo囧
    2017-06-23 21:05:36

    一个HTML 文档中本来也可以使用多次相同的ID选择器,这是可以的,这是允许的,在html语法中没有任何的错误,当然可以了,你运行报错了,没有报错吧,所以在语法上没有任何问题,程序可以正常运行!那么为什么说一个HTML 文档中只能使用一次ID选择器,这种说法是为了后续使用javascript做铺垫啊!我们在使用javascript的时候为了获取到一个元素对象,会这么写,documnet.getElementById("元素id的值"); 你想过没有,如果页面中有2个元素的id相同的话,那么documnet.getElementById("元素id的值");这句话,获取到的元素对象到底是获取到哪个对象呢,它会获取到第一个id="元素id的值"的元素,所以你想想,一个HTML 文档中使用多次相同的ID选择器对后续的javascript编程会有多大的影响呢?

  • 赵飞达
    2016-08-03 17:36:37

    id一般是用来设置私有属性

    class一般设置公有属性。

    所以如果id写一样效果就和class一样了,尽管没有语法错误,但是不建议写一样,而且对后期编写js有很大影响。


  • 随便啦3711546
    2016-07-23 16:09:16

    不是强制性规定吧,只是大家约定俗成?

  • 吴小亮
    2016-07-23 16:06:49

    这个,不太懂。是因为在内联标签内?

  • 陈宇汐文
    2016-07-23 15:56:55

    说只能使用一次是不是因为要限制什么东西,那class为什么不限制,不重名就行吧

  • Menmas
    2016-07-23 15:55:33

    因为使用的都是同一个id选择器?

    我是新手也不太懂,强答一波_(:з」∠)_