2010-08-26 152 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

相關問題