0

我在html中有这样的东西

<tr id="cart_item_1">
    <td> 
        <a href="#" id="samename" class="someclass">samename</a>
    </td>
</tr>

<tr id="cart_item_2">
    <td> 
        <a href="#" id="samename" class="someclass">samename</a>
    </td>
</tr>

是否可以使用samenameid 两次,因为其父 ID 不同,或者无论元素的层次结构如何,在任何地方都使用相同的 IDS 是完全不可接受的?

4

3 回答 3

4

无论父元素如何,ID 在整个文档中都必须是唯一的。

来自http://www.w3.org/TR/REC-html40/struct/global.html#h-7.5.2

id = 名称 [CS]

此属性为元素分配名称。此名称在文档中必须是唯一的。

于 2013-10-25T15:11:34.853 回答
2

不,实际上不是。就像名称一样,ID 或标识符需要是唯一的。所以你可以用它来定义一个奇异的dom元素。例如,它用于指定页面标题,与某些文章标题相对,您将为其分配一个类。例子:

<div id="header">
    <h1>Welcome to my website!
</div>
<article class="blogpost">
    <div class="header">
        <h3>My blog post title</h3>
    </div>
    <div class="content">
        ....
    </div>
</article>
<article class="blogpost">
    <div class="header">
        <h3>My blog post title</h3>
    </div>
    <div class="content">
        ....
    </div>
</article>

现在使用 css,您可以#header { ... }使用.header { .... }. 您分配给 id 标头的样式不会影响具有相同名称的类的 dom 元素,反之亦然。

基本上:对仅在您的网站上出现一次的元素使用 ID,对可以在您的网站上多次出现的元素使用类。

于 2013-10-25T15:15:45.403 回答
1

是否可以两次使用同名ID,因为它的父ID不同

不!

或者无论元素的层次结构如何,在任何地方都使用相同的IDS是完全不可接受的?

是的。

于 2013-10-25T15:11:41.323 回答