亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 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表格布局實際使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    久久99中文字幕| 一级女性大黄生活片免费| 精品视频在线观看一区二区| 国产美女在线观看| 色综合久久手机在线| 日本免费区| 亚洲精品永久一区| 国产不卡在线看| 99久久精品费精品国产一区二区| 91麻豆国产福利精品| 四虎久久影院| 久久精品欧美一区二区| 国产一区二区精品| 午夜欧美福利| 国产91精品系列在线观看| 精品国产一区二区三区久久久蜜臀 | 亚洲精品影院| 欧美国产日韩在线| 青草国产在线观看| 麻豆网站在线看| 日本在线www| 久久99青青久久99久久| 夜夜操网| 亚洲爆爽| 亚飞与亚基在线观看| 欧美日本国产| 欧美激情一区二区三区在线| 久久福利影视| 九九精品久久久久久久久| 欧美α片无限看在线观看免费| 欧美18性精品| 在线观看成人网| 精品视频免费看| 欧美激情一区二区三区视频 | 久久99中文字幕久久| 99色视频在线| 免费国产一级特黄aa大片在线| 人人干人人插| 午夜家庭影院| 国产成人欧美一区二区三区的| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 成人a大片高清在线观看| 精品国产一区二区三区国产馆| 毛片高清| 日本在线不卡免费视频一区| 九九热精品免费观看| 国产视频一区二区在线观看| 一级毛片视频在线观看| 久久福利影视| 精品视频在线看| 国产一区免费在线观看| 黄色短视屏| 尤物视频网站在线| 日日夜夜婷婷| 亚洲天堂在线播放| 香蕉视频久久| 精品视频一区二区三区免费| 日韩av东京社区男人的天堂| 91麻豆精品国产高清在线| 久久99中文字幕| 台湾美女古装一级毛片| 国产高清视频免费观看| 国产成a人片在线观看视频| 免费一级生活片| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久草免费在线视频| 四虎影视库| 日本在线不卡视频| 免费一级片在线| 黄色福利片| 麻豆系列 在线视频| 日韩中文字幕一区| 精品视频在线观看免费 | 国产a一级| 国产精品自拍在线| 国产精品自拍在线| 国产欧美精品| 免费一级片在线| 99色视频在线观看| 精品视频免费看| 亚久久伊人精品青青草原2020| 久草免费资源| 99久久精品国产高清一区二区| 青青青草视频在线观看| 久久久久久久免费视频| 精品国产一区二区三区久久久狼| 国产一区二区精品久久91| 成人免费观看的视频黄页| 欧美a免费| 亚欧成人乱码一区二区| 日韩免费在线视频| 台湾美女古装一级毛片| 免费毛片播放| 韩国毛片| 夜夜操网| 日韩av成人| 国产成人啪精品视频免费软件| 亚洲第一页色| 一级片片| 麻豆污视频| 国产不卡精品一区二区三区| 日日爽天天| 99色视频在线观看| 91麻豆精品国产综合久久久| 精品国产一区二区三区久| 韩国毛片 免费| 九九久久国产精品| 国产视频久久久久| 国产亚洲精品aaa大片| 国产激情视频在线观看| 成人免费观看网欧美片| 日韩欧美一二三区| 成人免费观看男女羞羞视频| 欧美激情一区二区三区在线播放| 日韩男人天堂| 天天做日日爱夜夜爽| 在线观看导航| 亚欧成人毛片一区二区三区四区| 欧美爱色| 精品国产亚一区二区三区| 日日夜夜婷婷| 国产不卡福利| 99热精品在线| 日韩中文字幕在线亚洲一区| 欧美一级视频免费| 成人在免费观看视频国产| 四虎影视库| 午夜在线亚洲| 黄色短视屏| 国产精品12| 欧美激情一区二区三区视频 | 黄色短视屏| 国产成人啪精品| 国产激情视频在线观看| 国产成人欧美一区二区三区的| 一级毛片看真人在线视频| 欧美激情一区二区三区视频 | 亚洲爆爽| 在线观看成人网| 青青久久国产成人免费网站| 青草国产在线观看| 色综合久久天天综合观看| 麻豆网站在线看| 欧美另类videosbestsex| 91麻豆国产| 国产极品精频在线观看| 欧美大片a一级毛片视频| 成人免费高清视频| 亚洲第一页色| 青青久久国产成人免费网站| 久久久久久久网| 亚洲天堂免费| 青草国产在线观看| 韩国三级视频网站| 色综合久久天天综合绕观看| 在线观看导航| 四虎影视久久久| 国产精品1024在线永久免费 | 国产美女在线观看| 中文字幕97| 黄色短视屏| 精品视频在线观看一区二区三区| 四虎久久精品国产| 久久国产精品只做精品| 欧美激情中文字幕一区二区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 亚洲精品永久一区| 日韩男人天堂| 久久99中文字幕久久| 999精品影视在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美a级成人淫片免费看| 一a一级片| 黄色免费三级| 国产a视频| 精品国产一区二区三区国产馆| 999精品视频在线| 精品国产一区二区三区久久久蜜臀 | 日本免费看视频| 青草国产在线观看| 毛片高清| 国产亚洲免费观看| 欧美电影免费看大全| 国产激情视频在线观看| 999精品视频在线| 青青青草视频在线观看| 国产精品自拍在线| 九九免费高清在线观看视频| 精品视频在线观看免费 | 日韩专区一区| 韩国三级香港三级日本三级| 国产原创中文字幕| 日韩中文字幕一区二区不卡| 91麻豆tv| 999精品在线| 久久精品欧美一区二区| 91麻豆精品国产自产在线 | 欧美大片一区| 欧美激情一区二区三区中文字幕| 日本免费乱人伦在线观看 |