我知道有各種各樣的優秀論點喜歡CSS定位在基於表格的佈局。我想知道的是,CSS模型是否完整(假設一個相對較新的瀏覽器)與表的所有功能有關。表格可以實現的佈局是不可能的還是不切實際的CSS?表格可以做CSS定位不能做什麼?
回答
如果可以的話,我會切換到基於CSS的佈局。語篇論證是正確的,但有實際的考慮。表會:
- 絕對防止「浮動包裹」,其中一個div將下降到下一行,因爲沒有它
- 給你同樣的高度列
- 允許動態佈局,其中寬度足夠的空間和高度不爲人所知,直到運行時
- 提供colspans和rowspans
- 減少SO問題問如何做的東西,而表:)
有一些模仿其中的一些CSS顯示屬性(表格單元格等),但我不相信這種支持已經足夠普及到使用它們(除非你可以控制用戶的瀏覽器選擇)。
我工作的網站需要在佈局中採用競爭性的動態列寬。多個客戶使用相同的網站模板,我不知道他們將放入菜單或頁面標題或內容單元中。 (並且不知道他們會發現什麼吸引人的,這是另一個問題......)使用一個外部表格來佈置網站的主要部分可以提供我所需要的靈活性,而不用擔心稍微太寬的菜單會推動主要內容框到下一行,或者背景顏色不會填充所需的高度。在一個完美的(對我來說)的世界裏,我們將有<table>
s爲表格數據,另一個幾乎相同的一組佈局標籤 - 稱爲<layout>
(以及相應的行和單元格標籤)。或者,爲<table>
標籤添加一個「模式」屬性 - 這些值將是「數據」和「佈局」,以便屏幕閱讀器和搜索引擎知道該怎麼做。也許在HTML 6 ...
編輯:我應該添加,關於'浮動包裝'的事情 - 有一個當前的問題,以及一個工作得很好的答案here。這並不完美,太複雜了,但它在很多情況下都能解決問題。
表意和應該用於表格數據,而不能用於結構。就我個人而言,我將桌子看作一個簡單的出路,而我從來沒有遇到過無法用CSS解決的情況。
表是垂直定位和全高度肯定列更容易,但是這同樣可以用CSS來克服。
的 同樣的方式我不是一個誰主張切割編程角落,但存在以下情況:一個「黑客」只是比做事「理想」的方式更好。 Html表格工作。在每個瀏覽器中。總是。他們很容易理解和維護。在佈置div時,CSS與此相反。 – Nemi 2010-04-01 17:06:02
@Nemi - Boo!那麼標準是什麼? – 2010-04-01 17:37:19
+ -0我非常不同意。 *有*情況,如果沒有表或JavaScript,就無法處理。 CSS標準的設計者在提供用於佈局的'table'的替代方案方面做得不好,爲什麼,我不知道。至於「簡單的出路」,我向你們提出,當選擇介於五行「
+0爲第一,-1爲第二和第三,+1爲第四和第五。 :D – ANeves 2010-04-01 17:16:59
@sr pt:我很高興你給了我第一個+0,而不是-0 ......認真地說,我已經看到了大部分這些東西的部分解決方法,但從來沒有真正動態的寬度(我的第3個)。你有東西給我嗎? – Ray 2010-04-01 17:26:03