網頁的 Table 布局和 DIV+CSS 布局從哪裡可以看出來?Table 布局已經過時了嗎?


我可以狂妄的說一下大家都沒說到點子上么。。。

語義是一方面,但是只是很少的原因。根本原因在於table的html結構和css綁定得太死。

具有子父級關係的div,我們可以通過display:table和table-cell分分鐘鍾使其具有table的特性,html結構和css代碼高度分離。

如果寫成table了,要改動一個設計的話,那麼html和css全廢了。


輪子哥答了,但是是錯誤的,起碼也是不完善的,那麼搞Web的人不答也不行;而要是我這種小透明答了,點贊數還沒他這個錯誤的答案多,是不是尷尬?

& 是無語義的 HTML 元素,單單 & 怎麼實現布局?有所謂 & 布局,是不是還有 &/&

/& 布局?說不通嘛。

必須要明白一件事,語義/內容 和 樣式/布局 是分開的。在寫內容時你該用什麼元素用什麼元素,&/&/&/&,乃至於 & 等等,該用就用,不要為了樣式而犧牲內容的語義化。儘管在實踐中很多從業人員都是隨心所欲甚至只用 & ,這是不吼的,不要跟他們學。

布局靠的是 CSS ,而 CSS 又有相當多的規則,用於布局有好幾種手段, block/inline/table/position/flexbox/grid 等等,這豈是所謂 「& 布局」 又或 「&布局」 所能概括的?

記住了啊,多學習,多總結。下一次面試別人問你,「網頁用什麼布局」,你要抬頭挺胸、大聲地回答 「用 CSS」,而不是說 「用 &」,會被人笑的。


  1. 數據、結構、表現分離,有利於多角色多進程開發,提高效率,降低開發時間成本

  2. 降低結構和表現耦合度,升級成本降低;

  3. 合理規劃的頁面結構便於實現頁面的跨平台化,降低遷移成本

  4. 降低了頁面結構開發的難度,後端人員可以集中精力處理功能模塊的數據,後端人員可不用學習前端或少學相關知識,降低用人成本

  5. 客觀上擺脫table布局對頁面布局的限制;

  6. 客觀上成就了js+css的更多豐富應用;

  7. 客觀上實現語義化;

  8. MLGBD,客戶一旦對布局需求提出修改,要是table布局我就辭職不幹了!

降低生產成本才是促進網頁重構的第一動力!

部分低水平table布局中各種奇葩的嵌套,td里套table,table里再套td,td里再套table...

這種代碼怎麼維護?


最簡單的就是查看源代碼啊。table布局的源代碼中由一個個&表格標籤包含&行標籤,&單元格 等標籤組成如

&

&&&&&&

&&&&&&

&

代表的就是一個兩行兩列的表格。

而div布局則是由 & & 這樣一個個div塊組成。css(層疊樣式表)則對頁面的布局樣式起作用。


選擇合適的HTML5標籤,語義化標籤,才是大勢所趨。標籤沒有過時不過時,只有會用與不會用,用得好與用得不好之說。

總之:用得不好,就是過時。


表格結構是固定死的,改一處地方基本牽一而動百,已經淘汰。DIV的結構可以靈活修改。

我還記得09年的時候,有一門課是網頁設計,當時我們學校還在教表格布局。所以所謂的網頁設計就是在DW插入表格,多少列多少行,然後插入圖片、文字、鏈接,好了,這就是網頁設計,你們自己耍吧,當時好像還沒有教CSS。現在兜兜轉轉又回到前端入門……0_0


原因什麼的前面的答主已經說的很清楚了。

我想起了我們學校的網站,打開源碼,一堆table td tr,簡直慘不忍睹

然後還有一個2015年的「新主頁測試版」,結果查看源碼,還是一堆噁心的table td tr……

都2015年了啊!!!

難道是以前的開發人員沒學過div?!

我記得就算是現在教科書教的還是表格排版,我們的高中老師就讓我們學div了啊!

兩個主頁在設計上也是慘不忍睹

新主頁唯一一個好的地方就是不用flash了

下面的頁面更爛

讓人有一種恨不得衝進相關部門說:「我可以無償重做學校網站!」的衝動

其實很多學校都是這樣


TABLE布局不是已經過時,而是從一開始就是一種不正確的網頁製作方式,並且還曾經被錯誤的推廣了


沒有什麼過時,只是大家更看中語義化了,table的意思就是表格,難道寫一個表格的布局,非要用DIV拼湊才叫有技術?難道就沒人發現CSS彈性布局和table的實現很像嗎?

____

補充,為什麼推薦用DIV不用TABLE,歸根到底還是TABLE寫的東西太歸整,代碼量大。難以維護。

寫一個網頁要各種合併行和並列,特殊點布局很難實現。

語義上TABLE更適合最個表格數據存放。

但是TABLE還是推薦大家了解學習下,和CSS3的彈性布局有很大的相同點,如果TABLE過時了,W3C早就把TABLE移除了,還留著做什麼呢?


不用table 不是因為響應式,主要table 本來就是有自己語義的,不是用來布局的,只是大家發現用它布局簡單就都用了,但隨著網頁複雜程度增加,用table布局嵌套層次太深,看不懂代碼了

Div 是無語義的分割,更適合布局,而且沒有table必須的嵌套,隨著瀏覽器對css支持完善和css本身功能的增強,div包括span h5新增語義塊元素用來布局真的比table簡單而且強大

大家不是刻意裝逼不用table,而是不用真的簡單


為了同時適配desktop和mobile而放棄table走上div也只是另一種邪路,本來就是應該設計兩份頁面,主要由table構成,裡面去用div的。table和div都各有各的好處,不能人云亦云。


千萬不要問過不過時,因為你要知道,只要有人還在用,就說明這方面的技術你的版本發展,而是適應性。

table用來展示表格數據,起碼我覺得比div好,你div還要做樣式處理才好做個表格型的數據展示,我table自帶表格樣式,有一種和你比我都覺得丟臉的感覺。


我記得H5標準的第一章就是語義化,搞不懂為什麼那麼多人說&布局,我印象中布局是CSS的事情,關&什麼關係?H5用來標記語義,CSS布局,JS定義行為,為什麼要把布局的事情交給&??

個人愚見,布局請用CSS,&由於沒有明確的語義不推薦使用,請使用&&&&&等具有語義的標籤定義Html


年輕的時候我也是個教條主義,拒絕table布局。

後來那個合適上那個


為了SEO


右鍵查看源文件 可以直接看網頁代碼 table格式現在用的少了 但是有的特殊樣式還是用的比較方便的


新技術的運用帶來更自由的布局結構與配色

關於網頁如何布局

網頁從早期的純文字頁面,到圖片的出現,再到現在多媒體廣泛應用,使得頁面的內容越來越豐富。儘管頁面中的元素日益豐富,但頁面的布局與配色當網頁設計完成後,在互聯網中的呈現基本是一成不變的。隨著近幾年 Flash 技術的應用和 HTML5 的嶄露頭角,使以往不可想像的動態化的網頁布局和配色成為了可能。曲靖網站建設應用了這些最新技術的頁面,不再是一成不變的,頁面的布局和配色會隨著瀏覽者滑鼠的移動,發生動態的變化,呈現出不同的視覺效果。而 Cookies 技術的應用,億企建站使得當瀏覽者下次再訪問同一個網站,Web 伺服器會先看看有沒有瀏覽者上次留下的 Cookies 資料,如果有的話,Web 伺服器就會依據 Cookies 里的內容來判斷瀏覽者,送出特定的網頁內容給你,這一技術的應用,讓不同的瀏覽者訪問同一個站點,看到不同的布局與配色成為了可能。


這個真的是2016年的問題,時間線沒崩壞?!

是的,table已經過時了,毫無疑問。

前排居然可以戰起來?!什麼情況!這問題完全無關語義化好嗎,語義化是用來噴div+css的,告訴小盆友要花式用html標籤。

一開始使用table,是因為在網頁布局的時候,大家想要的就是嚴絲合縫表格式樣的豆腐塊。這是從印刷排版時代沿襲至今的排版思考方式。

頁面是一個個豆腐塊,或者說盒子構成。內容+邊距剛好佔據整個版面。

不過在遠古時代,各個瀏覽器的迷之解析。css沒法被正確理解,版面崩得不行。

聰明的少年們,想出來一個hack,直接把盒子放在表格的單元格里。

row col都寫死,你告訴我還怎麼崩?!!

代價就是多一層嵌套+無法維護。

每次修改布局===layout重寫一次。

在那個蠻荒的遠古時代,大家都知道這樣做很蠢。但是為了每個瀏覽器兼容沒辦法。而且頁面量也不多,降低的開發效率也不是不能接受,後面DW出現,WYGWYS式的畫網頁,比苦戰CSS兼容性爽多了。

奠定了古代table布局廣大的群眾基礎。

它的成功,一方面是自身的努力(頁面不崩),一方面考慮到了歷史的進程。(狗*的IE)

後面隨著時代的發展,各家對CSS的實現愈加良好,table失去了其無可取代優勢——保證頁面兼容性。這個時候開發者們就開始黑它的缺點了,

-讓DOM飛來飛去比較麻煩。

-非同步載入一堆數據過來要包裝N層才能查插。

-多一層嵌套。

-修改文檔內容工程量大得不要不要的。

想減少每次修改的量,使用多個table分離各邏輯模塊,和div+css又有什麼差?

始終前端的朋友們,想要的是像豆腐塊一樣貼合巴適的頁面,CSS盒模型就是用來解決這問題的。現在兼容沒問題了,一切都是那麼的美麗。

不再需要table了,就不用唄,大家轟轟烈烈的重構起來。

滿足需求的前提下,用更標準的寫法。前端的同學們又不是真的不會寫代碼(文員,前台干不下去才轉前端真的是段子),這點腦子還是有的。

反對一系列對於div+css需要更多修改的說法。一開始沒分割好結構,各種靠position margin padding修修補補才會出現一點修改,css試半天的情況。寫div大小時多想想豆腐塊 0v0

反對css代碼量更大,table只需要填進去的說法。基建不做好,每次徒手擼樹怪樹咯?

補充下table也可以兼容移動端,也可以做響應式。table布局,與rem,%寬度,media query並不衝突。跨終端適配的能力上和div+css方案幾近等價。

table缺陷在於html上太混亂,對於Js,SEO都不友好。

用作hack的古老方案,過時了就承認吧,沒必要詐屍。這都給洗地是多有情懷啊。

如果說現在還有table可以發光發熱的地方,大概在於那些簡單得不行的靜態頁企業站,沒有任何「重」的交互需要。明明叫畫完圖的美工同學順手拖進DW就可以搞定,非要趕潮流雇兩個前端碼農人肉轉碼。(要SEO加幾個隱藏的h1嘛)


使用div: html 和 css 之間的耦合低,便於維護。但是對於 seo 以及網頁閱讀器不夠尊重。


寫html還是語義化優先,然而產品設計的表格複雜樣式往往還是用div寫得爽點。


推薦閱讀:

一般用什麼軟體來設計網站的頁面?
如何評價「萌碼」這個網站?
CSS 中 border-width 為何不支持百分比?
相對於英文字體設計,中文字體設計是否更難追求形式感和可讀性的兼顧?
如何在家自學前端?

TAG:網頁設計 | 網頁布局 | DivCSS | 頁面重構 |