當使用div時,什么時候最好使用類而不是id?
使用類,比如html中的字體變體或元素,是最好的嗎?然后對結構/容器使用id?
這是我一直有點不確定的事情,任何幫助都將是巨大的。
使用id來標識在一個頁面上只有一個實例的元素。例如,如果你有一個單獨的導航欄放在一個特定的位置,使用id="navigation "。
使用類將所有行為方式都相同的元素分組。例如,如果您希望您的公司名稱在正文中以粗體顯示,您可以使用& ltspan class='company ' >。
要理解的最重要的事情是ID必須是唯一的:一個頁面中應該只有一個具有給定ID的元素。因此,如果您想要引用特定的頁面元素,這通常是最好的選擇。
如果有多個元素在某種程度上是相似的,那么應該使用elements類來標識它們。
一個非常有用但卻鮮為人知的事實是,通過在類名之間放置空格,您實際上可以將多個類應用于一個元素。因此,如果您發(fā)布了一個由當前登錄用戶編寫的問題,您可能會用& ltdiv class = " question current author " >。
學生證是有區(qū)別的。校園里沒有兩個學生會有同一個學生證。然而,許多學生可以并且愿意相互分享至少一節(jié)課。
把多個學生放在一個班級標題下沒問題,生物101。但是把多個學生放在一個學號下是絕對不能接受的。
通過學校內部通信系統(tǒng)制定規(guī)則時,您可以為班級制定規(guī)則:
"明天生物課請穿紅色襯衫好嗎?"
.BiologyClass {
shirt-color:red;
}
或者,您可以通過調用特定學生的唯一ID來為其制定規(guī)則:
"喬納森·桑普森明天可以穿綠色襯衫嗎?"
#JonathanSampson {
shirt-color:green;
}
id必須是唯一的,但是在CSS中,當決定遵循兩個沖突指令中的哪一個時,id也具有優(yōu)先權。
<div id="section" class="section">Text</div>
#section {font-color:#fff}
.section {font-color:#000}
文本將是白色的。
使用ID的另一個好處是能夠在錨標記中定位它:
<h2 id="CurrentSale">Product I'm selling</h2>
將允許您在其他一些地方直接鏈接到頁面上的那個點:
<a href="#CurrentSale">the Current Sale</a>
這樣做的一個常見用途是給博客上的每個標題一個帶日期戳的ID(比如id="date20080408 "),這將允許您專門針對博客頁面的該部分。
同樣重要的是要記住,id的命名規(guī)則更加嚴格,主要是不能以數字開頭。參見類似的SO問題:html中id屬性的有效值是什么
當您想要將相似的樣式應用于許多不同的div或元素時,類是非常有用的。當您希望用javascript處理特定的元素以進行格式化或更新時,id是很好的選擇。
HTML標準本身回答了你的問題:
沒有兩個對象可能具有相同的ID,但是任意數量的對象可能具有相同的類。
因此,如果您想將某些CSS樣式屬性僅應用于單個DIV,那么它就是一個ID。如果您希望某些樣式屬性應用于多個div,那么它必須是一個類。
請注意,您可以將兩者混合使用。您可以讓兩個div屬于同一個類,但是給它們不同的id。然后,您可以將兩者通用的樣式應用于類,并將特定于其中一個的內容應用于它們的ID。瀏覽器將首先應用類樣式,然后應用ID樣式,因此ID樣式可以覆蓋類以前設置的任何內容。
其他一些需要記住的事情:
當使用ASP.Net時,你不能完全控制元素的ID,所以你幾乎必須使用class(注意,這不像以前那樣正確)。 如果可以的話,最好兩者都不用。相反,指定元素類型及其父元素的類型。例如,包含在具有navarea類的div中的無序列表可以這樣挑選出來:
div.NavArea ul { /* styles go here */ }
現(xiàn)在,您可以用一個類應用程序來設計整個航區(qū)的邏輯分區(qū)。
id應該是唯一的。應該共享類。因此,如果您有一些將應用于多個DIV的CSS格式,請使用一個類。如果只有一個(作為要求,而不是偶然),使用ID。
我想我們都知道什么是類,但是如果你認為id是標識符而不是樣式工具,你就不會錯得太多。當試圖定位某個對象時,您需要一個標識符,如果您有多個具有相同ID的項目,您將無法識別它...
當涉及到為id和類編寫css時,盡可能使用最少的css類是有益的,不到萬不得已,盡量不要過多地使用id,否則您將不斷地致力于編寫更強的聲明,很快就會有一個充滿了!重要。
兩者之間的簡單區(qū)別在于,雖然一個類可以在一個頁面上重復使用,但是一個ID只能在一個頁面上使用一次。因此,在標記頁面主要內容的div元素上使用ID是合適的,因為只有一個主要內容部分。相比之下,您必須使用一個類來設置表中的交替行顏色,因為根據定義,它們將被多次使用。
IDs是一個非常強大的工具。帶有ID的元素可以是一段JavaScript的目標,這段JavaScript以某種方式操縱元素或其內容。ID屬性可以用作內部鏈接的目標,用name屬性替換anchor標記。最后,如果你使你的id清晰而有邏輯,它們可以作為文檔中的一種“自我文檔”。例如,如果代碼塊的開始標記有一個ID,比如“main”、“header”、“footer”等,那么您不一定需要在代碼塊前添加注釋,說明代碼塊將包含主要內容。
如果你想在一個頁面的多個地方使用一個樣式,使用一個類。如果你想對一個對象進行大量的定制,比如說在頁面的邊上有一個導航條,那么id是最好的,因為你不太可能在其他地方需要這種樣式的組合。
id應該是頁面上元素的惟一標識符,這有助于對它進行操作。任何外部CSS定義的樣式應該在多個元素中使用,應該放在class屬性中
<div class="code-formatting-style-name" id="myfirstDivForCode">
</div>
為頁面上的一個獨特元素使用一個id,您想用它來做一些非常特殊的事情,為您可以在頁面的其他部分重用的東西使用一個類。
id屬性用于元素在文檔中唯一地標識它們,而class屬性可以具有相同的值,由同一文檔中的許多元素共享。
所以,實際上,如果每個文檔只有一個元素使用該樣式(例如#title),那么就使用id。如果多個元素可以使用該樣式,請使用class。
我認為當你認為一個樣式元素將在頁面上重復出現(xiàn)時,最好使用一個類。像HeaderImage、FooterBar之類的項目很適合作為ID,因為你只會使用它一次,它有助于防止你意外地復制它,因為當你有重復的ID時,一些編輯器會提醒你。
如果您打算動態(tài)生成div元素,并希望將特定的項目作為格式化的目標,我也可以看到它的幫助;您可以在生成時給它適當的ID,而不是搜索元素然后更新它的類。
我選擇的風格是當css樣式以相同的方式應用于幾個div時使用類標識。如果結構或容器真的只應用一次,或者可以從默認繼承它的風格,我看不出有什么理由使用類標識。
所以這取決于你的div是否是幾個中的一個;例如,在stackoverflow網站上,一個div代表一個問題到一個答案。在這里,您可能希望為“Answer”類定義樣式,并將其應用于每個“Answer”div。
如果你正在使用。Net web控件,那么有時將類用作。Net在運行時改變web contol div id(在運行時使用runat="server ")。
使用類可以讓你很容易地為字體、間距、邊框等創(chuàng)建不同的樣式。我通常使用多個文件來存儲不同類型的格式信息,例如,basic_styles.css用于簡單的站點范圍格式,ie6_styles.css用于瀏覽器特定的樣式(在本例中為ie6)等,template_1.css用于布局信息。
無論你選擇哪種方式,都要保持一致,以幫助維護。
同樣,可以通過JavaScript和DOM命令來操作給定了特定id的元素,例如GetElementById。
總的來說,我發(fā)現(xiàn)給所有主要的結構div一個id是有用的——即使最初,我沒有任何特定的CSS規(guī)則可以應用,但我有能力在將來使用。另一方面,我為那些可以多次使用的元素使用類——例如,包含圖像和標題的div我可能有幾個類,每個類的樣式值略有不同。
但是請記住,在所有條件相同的情況下,id規(guī)范中的樣式規(guī)則優(yōu)先于類規(guī)范中的樣式規(guī)則。
除了id和類可以很好地設置單個項目的樣式而不是一組相似的項目之外,還有一點需要記住。在某種程度上,這也取決于語言。在ASP.Net,你可以加上Div和id。但是,如果您使用面板而不是Div,您將丟失id。
類是針對你可能在一個頁面上多次使用的樣式,id是定義元素特殊情況的唯一標識符。標準規(guī)定id在一個頁面中只能使用一次。因此,當您想在一個頁面中的多個元素上使用一種樣式時,應該使用類,而當您只想使用一次時,應該使用ID。
另一件事是,對于類,你可以使用多個值(通過在每個類之間放置空格,比如" class='blagh blah22 blah ')而對于ID,你只能對每個元素使用一個ID。
為id定義的樣式會覆蓋為類定義的樣式,因此在中,#uniquething的樣式設置會覆蓋的樣式。無論兩者是否沖突。
所以你可能應該在標題、你的“側邊欄”或其他類似的東西上使用IDs那些每頁只出現(xiàn)一次的東西。
對我來說:如果使用類時,我會在CSS中做一些事情或添加名稱到元素中,并可以在頁面中的所有元素中使用。
所以我用id來表示唯一元素
例如:
<div id="post-289" class="box clear black bold radius">
CSS:
.clear {clear:both;}
.black {color:black;}
.bold {font-weight:bold;}
.radius {border-radius:2px;}