婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTML表格布局實際使用詳解

HTML表格布局實際使用詳解

熱門標簽:電話機器人宣傳片 華為收費站地圖標注 個貸電銷機器人 巫山縣地圖標注app 騰訊植物園地圖標注 鄒城智能外呼系統 浦東新區百度地圖標注圖片 外呼智能系統報價 經綸電銷機器人

什么時候會用到表格

現在,表格<table>一般不再用于網頁整體的布局。不過,在面對某些特定的設計,如表單輸入、數據呈現時,表格則可能是最恰當的選擇。

關于表格的直觀印象,就是由多個單元格(cell)整齊排列而成的元素,可以明確看出行(row)和列(column)。這可以聯想到Excel,由Excel在數據處理和統計上的地位,就可以理解網頁中表格的意義。

簡單來說,能直觀感受到多個元素是以行和列的概念排列時,用表格會讓你輕松很多。如caniuse.com中應用表格的例子:

表格布局計算

使用表格很簡單,但有時候表格最終為每一個格子呈現的狀態,可能不是你想要的。比如說某些格子出現了換行,然后整個表格就因為換行看起來十分不美觀。尤其是用于數據呈現的表格,寬度分配是一個很重要的話題,你可能需要為每一列格子可能呈現的數據情況,對表格的總寬度做精打細算。

這是因為,表格在布局上有自己的特性,它會遵循一定的原理,通過計算,確定出它的實際布局。接下來,本文以實際的表格測試示例,探討表格是如何計算自己的布局的。
初始聲明

本文只針對應用表格最常見的方法,而不會列出所有的情況。不同瀏覽器對表格的部分概念的解析有差異,但布局計算是基本一致的(如果有差異,會單獨提及)。

接下來用的測試表格都會以這樣的外觀呈現(內容取自零之軌跡):

同時,表格都會設置border-collapse:collapse;和border-spacing:0;。這也是應用表格的最常用做法,Normalize.css把這部分用作了初始化定義。
兩種算法

定義在<table>元素上的css屬性table-layout,將決定表格在布局計算時應用的算法。它有兩種值,auto和fixed。在通常情況下,都使用默認值auto。

這兩種算法的差異在于表格的寬度布局是否與表格中的數據內容有關。本文會分別討論在這兩種取值時,表格的布局計算原理。
自動表格布局-auto

自動表格布局的特點是,表格的寬度布局與表格中的所有數據內容有關,它需要在獲取所有表格內容后才能確定最終的寬度布局,然后再一起顯示出來。

如此看來,要點就是“內容相關”了。如果表格定義了固定寬度(這里是500px),而所有的單元格都不定義寬度(只討論css定義寬度),會如何呢?來看結果:

上面這個表格中,空白的部分是寫了&nbsp;空格。經過比較,可以發現以下幾點:

    第2列和第3列寬度相同。
    第1列的寬度和后面任意一列的寬度比似乎是2:1。
    加上邊框和內邊距,所有列的寬度總合,等于表格定義的寬度。

每個單元格都沒有定義寬度,所以寬度布局完全由具體的內容數據(文本信息)決定的。如何解釋這樣的結果呢?可以先直觀地推測這樣的邏輯:

    第1步,從每一列中選取文字內容最多(理解為不換行的情況下,文本所占據的寬度最寬)的,作為“代表”。
    第2步,比較各列的“代表”的寬度,然后按照它們的寬度比例關系,為它們分配表格的總寬度,包括邊框和內邊距。

參照上面的邏輯,再來反觀一下前面的表格,是不是挺有一些道理?注意,前面說寬度比“似乎”是2:1,這個會是?來看看去掉內邊距的版本:

用前端調試工具具體看一下上面的單元格的寬度,你會發現這個表格和之前不同,比例已經非常接近2:1(是的,還有的這一小點是因為邊框,但是沒有邊框就沒法區分列了)。

可見,在分析寬度比例關系的時候,是會把內容寬度和內邊距,以及邊框都考慮在內的。這也說明,不是衡量文字的數目,而是衡量文字在不換行狀態所能占據的寬度(這里的2:1來源于中文漢字是等寬的)。使用內邊距自然只是為了做出更美觀的表格 :) 。

有寬度定義的時候,又會怎樣呢?下面是一個部分單元格有寬度定義的表格:

它的對應html代碼是:

XML/HTML Code復制內容到剪貼板
  1. <table class="exhibit_table">  
  2.     <tr>  
  3.         <th>一二</th>  
  4.         <th style="width:200px;"> </th>  
  5.         <th> </th>  
  6.     </tr>  
  7.     <tr>  
  8.         <td style="width:5px;"> </td>  
  9.         <td></td>  
  10.         <td> </td>  
  11.     </tr>  
  12.     <tr>  
  13.         <td> </td>  
  14.         <td style="width:70px;"> </td>  
  15.         <td>一二三四</td>  
  16.     </tr>  
  17. </table>  

上面這個表格可以發現以下幾點:

    寬度定為5px的單元格,實際呈現寬度是13px,這正好是單個漢字的寬度,同一列的有漢字的單元格則以最小單元格寬度的形式排列文字(所以,換行了)。
    寬度定為200px的單元格,實際呈現寬度是200px,盡管同列還有一個寬度70px的定義。
    沒有確切寬度定義的第3列,最后得到了表格在分配完第1列和第2列后全部的剩余寬度。

對此的推斷是,存在寬度定義和不存在寬度定義的列都有的情況時:

    如果單元格定義寬度小于其內容的最小排列寬度(和不換行排列方式相反,盡可能多行排列在單元格內時,單元格所需的寬度),則該單元格所在的列,都會以最小排列方式呈現內容。
    如果同一列中,單元格的內容寬度(不換行形式,后文這個詞都是這個意思)小于該列中最大的寬度定義,則該列的實際寬度等于該寬度定義。
    不存在寬度定義的列,會先由表格分配寬度給有寬度定義的列之后,再分配給它們(同樣,它們之間的比例取決于內容寬度)。

最前邊的沒有寬度定義的可以看做情況1,這里有的列有寬度定義,有的又沒有,可以看做情況2。下面是情況3,即所有的列都有寬度定義時:

對應html代碼:

XML/HTML Code復制內容到剪貼板
  1. <table class="exhibit_table exhibit_table_with_no_padding">  
  2.     <tr>  
  3.         <th style="width:50px;"> </th>  
  4.         <th style="width:50px;"> </th>  
  5.         <th style="width:100px;"> </th>  
  6.     </tr>  
  7.     <tr>  
  8.         <td> </td>  
  9.         <td> </td>  
  10.         <td> </td>  
  11.     </tr>  
  12.     <tr>  
  13.         <td> </td>  
  14.         <td> </td>  
  15.         <td> </td>  
  16.     </tr>  
  17. </table>  

上面的表格中,去掉了內邊距,因此可以清晰地由寬度定義值,得到這3列的寬度比例是2:1:1。這里還有一個條件,就是單元格內的內容寬度不超過寬度定義值。經過測試,IE7及以下在內容超過寬度定義值和其他瀏覽器表現不同。

從這個表格例子可以知道,如果所有的列都有寬度定義,而這些寬度定義的值的和小于表格的寬度,則表格會在分配完它們寬度定義值所對應的寬度后,繼續把剩余寬度,按照它們的寬度比例,也分配給它們。

以上即是對自動表格布局,且表格本身是定義了固定寬度時,3種情況的分析。如果表格本身不定義寬度,還會有更多情況,而且會和表格的包含塊(containing block,詳情)有關,如果以后有合適機會,再做討論(所謂文章篇幅有限...)。
固定表格布局-fixed

固定表格布局的特點是,表格的寬度布局和表格中的數據內容無關,只需要接收到表格第一行的信息,就可以確定最終的寬度布局,并開始顯示。

固定表格布局是“內容無關”的,而且它強調“第一行”。請看下面這個表格示例:

對應html代碼:

XML/HTML Code復制內容到剪貼板
  1. <table class="exhibit_table exhibit_table_fixed">  
  2.     <tr>  
  3.         <th style="width:50px;"></th>  
  4.         <th>一二</th>  
  5.         <th>一二三四</th>  
  6.     </tr>  
  7.     <tr>  
  8.         <td>艾絲蒂爾·布萊特</td>  
  9.         <td width="1000px;"> </td>  
  10.         <td> </td>  
  11.     </tr>  
  12.     <tr>  
  13.         <td style="width:5px;"> </td>  
  14.         <td> </td>  
  15.         <td> </td>  
  16.     </tr>  
  17. </table>  

固定表格布局的邏輯要簡單很多,表述如下:

    只取第一行的信息,無視第一行之后的所有單元格的內容,及寬度定義
    在第一行中,如果單元格有寬度定義,則先分配它們所需的寬度,然后剩余的寬度平均分配給沒有寬度定義的單元格
    第一行的單元格的寬度分配將決定表格的寬度布局,第一行之后的內容不會再改變布局。

還需要注意的時候,使用固定表格布局,則一定要給表格元素定義寬度,如果它的寬度沒有定義(也就是auto默認值),瀏覽器會改用自動表格布局。
結尾聲明

與表格有關的其實還有<colgroup>、<thead>、<tfoot>、<caption>等元素,只是在最常見的用法中,并不需要用到它們。實際上,它們也在表格的布局計算的考慮之內。再加上還有單元格合并的情況,你大概可以想象到表格布局計算其實是多么復雜的東西。

W3C的文檔提到,表格的布局計算(自動表格布局)尚沒有成為規范。關于W3C對表格布局計算的說明,請參照Table width algorithms。
結語

其實就表格布局計算原理這一點,做這樣細致的推斷,并沒有多少實用性。只是說,在需要解決細節問題的時候,有這些信息做參考的話,會有所幫助,盡管這樣的機會不多。

不過,可以就本文的內容,得到一個比較有意義的結論:表格定義寬度,且所有單元格都不定義寬度,那么自動布局的表格會盡可能讓你的所有數據都不換行,而如果碰到換行影響美觀的情況,說明必須要精簡數據或者減小邊距,而不是再自行嘗試重做寬度分配。

這一次做這種實測和推斷,感到針對具體情況細分后再說明,會比一次性系統地完整表述,更容易理解,也許算是語文練習?

標簽:唐山 南平 楊凌 日喀則 滁州 那曲 廣西 三沙

巨人網絡通訊聲明:本文標題《HTML表格布局實際使用詳解》,本文關鍵詞  HTML,表格,布局,實際,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML表格布局實際使用詳解》相關的同類信息!
  • 本頁收集關于HTML表格布局實際使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲丝袜精品丝袜在线| 免费在线观看日韩欧美| 欧美激情综合五月色丁香 | 2024国产精品视频| 日本一区中文字幕| 欧洲av一区二区嗯嗯嗯啊| 欧美精品一二三区| 天堂资源在线中文精品| 欧美亚洲精品一区| 婷婷开心激情综合| 51精品视频一区二区三区| 亚洲成a人在线观看| 色综合天天做天天爱| 国产精品国产三级国产普通话蜜臀| 国产99一区视频免费| 久久综合九色综合97_久久久| 国产成人精品免费视频网站| 欧美韩日一区二区三区四区| 91美女在线观看| 亚洲国产视频a| 精品电影一区二区| 99久久国产综合精品女不卡| 中文字幕中文字幕一区| 欧美日韩国产综合久久| 国产米奇在线777精品观看| 亚洲视频网在线直播| 91精品黄色片免费大全| 成人理论电影网| 丝袜亚洲另类欧美| 久久综合九色综合欧美98| 日本伦理一区二区| 国产麻豆日韩欧美久久| 亚洲一卡二卡三卡四卡五卡| 精品国产免费一区二区三区香蕉 | 久久成人免费日本黄色| 中文字幕不卡在线观看| 欧美日韩欧美一区二区| 日本成人在线不卡视频| 中文字幕高清不卡| 日韩精品中午字幕| 欧美亚洲国产bt| 成人福利视频在线看| 精品亚洲aⅴ乱码一区二区三区| 亚洲少妇中出一区| 国产视频一区在线观看| 日韩欧美在线123| 在线一区二区三区四区| 国产黑丝在线一区二区三区| 午夜精品久久久久久不卡8050| 国产亚洲综合av| 精品理论电影在线观看| 欧美男人的天堂一二区| 91久久精品日日躁夜夜躁欧美| 国产精品一区二区视频| 蜜臀久久久久久久| 婷婷中文字幕综合| 亚洲精品伦理在线| 国产精品成人在线观看| 国产亚洲精久久久久久| 日韩欧美国产不卡| 日韩一级视频免费观看在线| 欧美视频中文字幕| 精品视频一区二区不卡| 欧美日韩在线播放三区四区| 色婷婷综合久久久久中文| 99免费精品视频| 91在线无精精品入口| 99视频热这里只有精品免费| 成人午夜视频免费看| 国产一区二区在线看| 国内精品久久久久影院色| 精品一区在线看| 日本欧美在线观看| 天堂成人国产精品一区| 免费看黄色91| 亚洲一区中文在线| 最新国产精品久久精品| 91精品国产黑色紧身裤美女| 99视频一区二区三区| 色噜噜夜夜夜综合网| 成人黄色大片在线观看| 99麻豆久久久国产精品免费| 国产精品自拍一区| 九九**精品视频免费播放| 亚洲国产欧美在线人成| 日韩黄色小视频| 午夜精品久久久| 青青草国产精品97视觉盛宴| 奇米色一区二区| 免费美女久久99| 美国毛片一区二区| 99视频国产精品| 日本韩国一区二区三区视频| 色综合色狠狠综合色| 在线精品视频免费观看| 欧美日韩精品福利| 5858s免费视频成人| 日韩一区二区三区视频在线观看 | 精品视频一区二区不卡| 欧美一区二区视频观看视频| 久久久久久一二三区| 国产亚洲欧美在线| 亚洲成人tv网| 国产成人精品亚洲777人妖| 色美美综合视频| 日韩一区国产二区欧美三区| 中文字幕不卡一区| 亚洲高清三级视频| 国产91精品欧美| 欧美性生活影院| 欧美极品另类videosde| 日本亚洲视频在线| 欧美系列在线观看| 欧美大片一区二区三区| 亚洲一区二区欧美日韩| 春色校园综合激情亚洲| 欧美成人精品1314www| 综合激情成人伊人| 久久国产免费看| 欧美偷拍一区二区| 国产精品二区一区二区aⅴ污介绍| 美国十次综合导航| 欧美在线免费观看亚洲| 欧美精品一区二区三区蜜臀| 一区二区激情小说| 懂色av一区二区夜夜嗨| 欧美三日本三级三级在线播放| 国产精品天美传媒| 久久精品国产精品亚洲精品| 欧美高清www午色夜在线视频| 欧美激情一区三区| 国产精品中文字幕一区二区三区| 欧美精品 日韩| 亚洲一区在线观看视频| 9人人澡人人爽人人精品| 中文字幕国产一区二区| 精品亚洲免费视频| 日韩精品专区在线影院重磅| 日韩激情中文字幕| 日韩一区二区免费高清| 亚洲一区二区高清| 5858s免费视频成人| 天天免费综合色| 欧美一区二区三区在线观看 | 欧美丝袜第三区| 玉足女爽爽91| 欧美亚洲国产一区二区三区| 亚洲视频你懂的| 在线免费观看日韩欧美| 自拍偷拍欧美激情| 97超碰欧美中文字幕| 国产精品久久久久久久岛一牛影视 | 69堂成人精品免费视频| 午夜国产不卡在线观看视频| 欧美精品亚洲二区| 秋霞电影网一区二区| 久久久久久99久久久精品网站| 久久草av在线| 日本一区二区不卡视频| 99视频一区二区三区| 婷婷六月综合网| 欧美va亚洲va国产综合| 国产成人av影院| 亚洲欧洲av另类| 91精品国产综合久久久蜜臀图片| 日本不卡高清视频| 国产精品日产欧美久久久久| 成人黄色大片在线观看| 亚洲一区二区三区四区在线观看 | 色噜噜狠狠成人中文综合| 中文字幕日韩一区二区| 日本一区二区免费在线观看视频 | 日日摸夜夜添夜夜添精品视频| 精品久久久久久亚洲综合网| 精品一区二区免费看| 国产精品无遮挡| 91久久国产综合久久| 国产一区二区看久久| 一区二区日韩av| 久久久精品黄色| 欧美在线免费视屏| 国精产品一区一区三区mba视频| 欧美韩国一区二区| 欧美一区午夜视频在线观看| 精品一区二区三区在线观看| 专区另类欧美日韩| 9191成人精品久久| 色综合久久久久综合体| 蜜臀av一级做a爰片久久| 亚洲激情六月丁香| 久久精品亚洲国产奇米99| 欧美女孩性生活视频| 成人污视频在线观看| 国产资源在线一区| 亚洲一区二区五区| 一区二区三区日韩欧美| 日韩专区一卡二卡| 亚洲少妇30p| 亚洲一区av在线| 日韩理论片在线|