2010-08-26 149 views
1

首先我认识到ID应该是唯一的。但现在我无法做太多的事情。我有一个生成ID名称的JavaScript插件,并且对于一个页面来说它的效果非常好。问题在于创建另一个页面,它将重新开始使用相同的命名约定。例如:具有相同名称的CSS多个ID是否有效?

<ul id="1"> 

第2页

<ul id="1"> 

所以,如果我想要的风格UL在第1页1#它会在第2页。所以也风格UL#1 ,关于如何分开我们的两个ID的任何建议?这个html是由JS生成的,否则我只会给它添加一个类。

谢谢。

+3

'1'不是有效的HTML ID。您的浏览器仍然可以识别它,但它不是有效的HTML。只是在说'。 – BoltClock 2010-08-26 20:08:44

+0

是的,它无效** HTML4 **。 – Anurag 2010-08-26 20:09:24

+0

该ID不是真的“1”,这只是一个例子,但我不知道。非常感谢 – Xtian 2010-08-26 20:33:32

回答

3

首先,唯一ID建议被限制在一个页面上。在不同的页面上有多个ID是完全正确的。解决这个问题的最好方法是给body添加一个ID。

第1页

<body id="Page1"> 
    <ul id="1"> 
     <li></li> 
    </ul> 
</body> 

第2页

<body id="Page2"> 
    <ul id="1"> 
     <li></li> 
    </ul> 
</body> 

CSS

#Page1 #1 
{ 
    //Some style for page 1, ID 1 
} 


#Page2 #1 
{ 
    //Some style for page 2, ID 1 
} 
+0

谢谢,现在变得非常有意义。 – Xtian 2010-08-26 20:22:24

1

你可以附上一个类吗?有一个div或跨度代码周围的一些其他元素,并生成一个类并为其分配一个类。

1

我想说,如果您需要不同样式的相同ID,则必须在每个页面上使用不同的样式表,但在进行样式更改时,这会很难保持。

或者,您可以将一个类分配给页面的UL标签之一,然后为该类创建样式。

0

首先,该插件仍然没有生成正确的ID,因为ID不能是数字。要回答你的问题,揣摩可能是两页可能是在这种情况下,你可以使用CSS像这样与一些不同的父元素:

#parent ul#1{ 
    /* styles here */ 
} 

#parent2 ul#1{ 
    /* styles here */ 
} 

第1页:

<div id="parent"> 
    <ul id="1"> 
    ............ 

第2页:

<div id="parent2"> 
    <ul id="1"> 
    ............ 

所以,你需要找出哪些是UL的一些父元素两页之间不常见。这是我想到的唯一可能性,您无法控制更改id或将它们替换为类,因为它们是由插件生成的。

+0

这是不正确的,你不能这样写,'ID'必须是唯一的。 – AmerllicA 2017-04-16 09:54:41

0

如果您想分开设计风格,您需要区分它们。如果你不能修改这些标签你很可能使用一些父容器,如:

<div id="parent1"> 
    <ul id="id1" /> 
</div> 

<div id="parent2"> 
    <ul id="id1" /> 
</div> 

然后:

#parent1 ul { 
    ... 
} 

#parent2 ul { 
    ... 
} 

还要注意的id不能以数字开始为你的情况。你应该考虑切换/修改这个插件。

+0

我相信这会对我有用。这只是不好的做法,但我并没有真正的选择。谢谢。 – Xtian 2010-08-26 20:13:20

0

有一件事我通常做的是附加类为t他为每一页的身体。 <body class="home_section">然后你可以基于该类.home_section ul#1 {}的风格。

另外,IDs must begin with a letter

相关问题