2011-05-31 64 views
3

我是一個網絡開發人員,已經有近2年的時間了,我仍然每天都在學習新的東西,但是由於我的知識越來越大,我遇到了一些根本性的問題,無法找到一個好的討論它。CSS Class&ID結構/命名

你如何命名你的DIV,ID,類?你給他們具體的內容相關的名字? (即<div id="google_map">

或者您是否將他們的名字命名爲與他們在網站上的位置有關? (即<div id="content_top_bar">

並且您是否以同樣的方式在.css中執行此操作?

我希望你能得到我想找到的東西。我想沒有任何「真實」的答案,但我想知道一些意見,以便我可以決定採取什麼選擇並在將來繼續使用它。

回答

6

HTML應作爲語義越好,這樣你的類和ID應該被命名爲他們的內容,而不是他們的風格,或網站中的位置(這些東西應該能變化不會影響你的HTML。

例如,如果你命名一個<div id="left-sidebar">和後來決定你想移動該元素的ID不再將語義表示的元素。相反,如果你一個名爲<div id="navigation"><div id="article">他們仍然會代表元素,無論他們在頁面上的位置或樣式如何。

+0

謝謝丹!你讓Blindy的觀點更加清晰,我會確定。嘗試在未來使用這些「規則」。你是否介意回答Blindys回答的問題:)? – Andrej 2011-05-31 14:52:26

+0

@Andrej - 我認爲Blindy和我本質上是一樣的。代碼中總是存在一定的個人風格。您需要找到個人喜好和良好語義的完美組合。最終,您的目標是保持您的代碼清潔,並且對另一位可能正在閱讀的開發人員有意義。你想盡量保持你的內容(HTML)和你的佈局(CSS)儘可能分開。你如何去做可能會發生在一百種不同的(但完全可以接受的)方式中。 – Dan 2011-05-31 17:32:45

1

由於HTML是用於內容的,因此您的命名應該引用內容。

3

我會根據它們的內容命名對象(無論是否是物理的邏輯)。你在乎什麼是對象而不是它在

上述規則的例外是當對象形成頁面佈局時,但在這種情況下,它不應該真正有名稱,除非您打算操縱頁面的結構來移動東西運行時(這很好,很少見)。

另外我發現自己並不是指定很多對象,而是指定它們的類,特別是對於我必須一起操作的相關對象。它使得通過jQuery(或你選擇的任何框架)與他們合作變得更容易。

+0

這是有道理的。特別是,我已經知道只需查看頁面/代碼即可查看對象的位置。 還有一件事:讓我說我有我的#內容和我的#menu鏈接,但我想他們完全不同。 你會爲每個鏈接類型創建2個類(a.content_link,a.menu_link)嗎? 或者你會爲每個div設置鏈接樣式(#content a,#menu a)? 你會把它們放在#menu和#content中或者在你的.css文件中加上「a」標籤嗎? – Andrej 2011-05-31 14:43:51

+0

sry爲壞的格式,我無法弄清楚這個mini-Markdown格式的換行符:) – Andrej 2011-05-31 14:45:53

+1

菜單鏈接在語義上是一個菜單項,所以我稱之爲'.menuitem',而你的內容鏈接是正常的所以我會將它們設置爲'.content a'(請注意,我認爲'content'是一個類,因爲它被用來定義你的內容的外觀,你不應該關心那些足以實際命名它的內容) 。 – Blindy 2011-05-31 15:59:28

2

我覺得這是一個明確的回答這個問題:無論什麼最適合你的:)

有些事情要考慮:

  • 您在codefiles或不是唯一的寫作?
  • 你的網站的結構是什麼,它是靜態的還是動態的?

根據這些,你可以選擇英文名或你自己的語言,或者你可以選擇命名div「內容」而不是「div_homepage」。

希望那是有幫助:)

+0

Hi NwN! 這確實有幫助,因爲我現在單獨工作,甚至沒有考慮到其他人可能難以輕鬆理解代碼格式,而對我來說很簡單。請牢記這一點! – Andrej 2011-05-31 14:48:05

0

根據什麼的HTML元素代表:

  • 元素是佈局的一部分,它的名字的東西,代表了佈局的一部分。 示例:'footer_top_bar'

  • 元素用於特定內容,將其命名爲代表內容的內容。 例如:'comment', 'navigation', 'breadcrumbs'.