2011-09-10 42 views
0

我有時會聽到人們不再使用表來格式化它,這是否開始是一種被遺留下來的趨勢?爲什麼?爲什麼不?它被認爲是愚蠢/過時的使用表格創建表單?

+1

的可能重複[爲什麼不使用表格的HTML佈局?](http://stackoverflow.com/questions/83073/why-not-use-tables-for-layout-in-html) – itsmatt

+0

@itsmatt:我覺得這樣很好。這是一個更具體,更好的問題,因爲它可以以任何方式使用。 – Nightfirecat

+0

Facebook的「編輯個人資料」表格是一個表格... –

回答

8

從語義上講,一個表應包含表格數據。從這個意義上說,使用表格標籤沒有任何問題。

哪裏出了問題是,當人們開始使用表格排版,他們這樣做,因爲這很容易。頁面佈局不是表格數據,因此不應在語義上位於表格標記中。

你可以做到這一點,它會工作,但你也可以吃奶油冷,它會工作。這個想法更多的是關於正確的做法,而不僅僅是做這件事。


在一個理想的世界裏,你就可以使用<fieldset> S,<label> S和其他形式的相關標籤來生成表單。

<label for="usernameID">Username:</label> <input type="text" name="username" id="usernameID" /> 

然後,您可以設置標籤和輸入的樣式,並且您的HTML中沒有絨毛。

實際上,你最終可能會把東西包裝在<div> s和<span> s中,但只是試着保持它的合理性,而不是與它們一起頂過。如果你曾經想過「我實際上已經有很多這種形式的非形式標籤」,那麼可能有更好的方法來做到這一點(儘管你的方式可能仍然有效)。

+0

那麼您在創建表單時如何使用相同的外觀?我想這是我最關心的問題 – adit

+0

有趣的是,我用這個編輯答案的一半,然後認爲「不,離開它」哈哈。 2s,回去編輯它。 – Joe

0

對任何非表格數據使用表格通常是不恰當的用法。這主要是因爲表格沒有給通常不會放入電子表格的內容賦予任何語義含義。

可以很容易地用一個表來格式化的形式,特別是如果你已經習慣了它,但它會是一個更好的做法是用別的,更好地描述你在它把數據。

3

有幾個原因:

  • 標記應該是語義。這意味着您的標記中的元素應該對您的內容說些有意義的內容。段落應該在<p>標記中,標題<h1><h6>等。相比之下,<td>標記告訴您沒有任何意義,例如<label>。另一方面,如果要創建元素的元素週期表的表示形式,則<td>標記非常合適。

    HTML 5繼續並加強了這一趨勢,因爲現在我們還獲得了像<nav><section>這樣的新元素,以使標記和內容之間的連接更緊密。

  • 表是一種風格和維護的痛苦。如果你在<label>中有一個<input>,並且你在<table><tbody>的內部有一個內部的<td>,那麼這就是一大堆嵌套元素 - 誰想要處理?保持嵌套到最低限度,並且您的CSS變得更加複雜,並且您的標記更易於閱讀。