table中cesllspacing與cellpadding的區別詳解

灰牛WEB發表於2020-05-19

table是什麼?它是由一個個cell單元格構成的,在表格中,<td>的個數取決於每行<tr>中包裹的cell單元格個數!此外,預設table表格在沒有新增css樣式<style type="text/css">table tr td,th{border:1px solid #000;}之前,在瀏覽器中顯示是沒有表格線的;

html中常見table寫法:A.<tr>…</tr>:表格的一行,有幾對tr表格就有幾行; B.<td>…</td>:表格的一個單元格,一行中包含幾對<td>...</td>,說明一行中就有幾列; C.<th>…</th>:表格的頭部的一個單元格,表格表頭,文字預設為粗體並且居中顯示;D.<table summary="表格簡介文字">/*摘要的內容是不會在瀏覽器中顯示出來的。它的作用是增加表格的可讀性(語義化),使搜尋引擎更好的讀懂表格內容,還可以使螢幕閱讀器更好的幫助特殊使用者讀取表格內容。*/ E.caption標籤,為表格新增標題和摘要,標題用以描述表格內容,標題的顯示位置:表格上方

<table border="" cellspacing="" cellpadding="">
   <tr><th>Header</th></tr>
    <tr><td>Data</td></tr>
</table>

 

<table border="" cellspacing="" cellpadding="" summary="">
         <caption></caption>
         <tr><th>今天星期五/th></tr>
         <tr><td>today is Friday</td></tr>
 </table>

言歸正傳,cellpadding 和cellspacing區別,先看下面一組表格圖片與cellspacing程式碼的對比:

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>table中cellspacing的區別</title>
        <style type="text/css">
            table{
                margin-bottom: 50px;
            }
            .ceshi{
                border-spacing: 20px;
                /*Specifies the distance between the borders of adjoining cells in a table. */
            }
        </style>
    </head>
    <table width="600" cellspacing="0" bordercolor="#333" border="1">
        <caption>第一個單元格</caption>
        <tr>
            <td>測試1</td>
            <td>測試2</td>
            <td>測試3</td>
        </tr>
    </table>
    <table width="600" cellspacing="20" bordercolor="#333" border="1">
        <caption>第二個單元格</caption>
        <tr>
            <td>測試1</td>
            <td>測試2</td>
            <td>測試3</td>
        </tr>
    </table>
    <table width="600" bordercolor="#333" border="1" class="ceshi">
        <caption>第三個單元格</caption>
        <tr>
            <td>測試1</td>
            <td>測試2</td>
            <td>測試3</td>
        </tr>
    </table>
</html>

比較程式碼,最上面的兩個表格只有cellspacing的設定不同,一個為”0“,一個為”20“,顯示的結果就是第一個表格的每個單元格之間的距離為0,第二個表格的每個單元格之間的距離為20;延伸下:第二個表格與第三個表格一致,但是第三個表格沒有設定cellspacing,我們發現這個border-spacing: 20px;與cellspacing="20" 的結果一樣一樣的,e.g小結:cellspacing屬性用來指定表格各單元格之間的空隙。此屬性的引數值是數字,表示單元格間隙所佔的畫素點數。

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>tabl表格中cellpadding的區別</title>
        <style type="text/css">
            table{
                margin-bottom: 50px;
            }
        </style>
    </head>
    <body>
        <table width="600px" border="1" bordercolor="#ccc" cellpadding="0">
            <tr>
                <th>我是快樂的cell表格</th>
                <th>我是快樂的cell表格</th>
                <th>我是快樂的cell表格</th>
            </tr>
        </table>
        <table width="600px" border="1" bordercolor="#ccc" cellpadding="20">
            <tr>
                <th>我是快樂的cell表格</th>
                <th>我是快樂的cell表格</th>
                <th>我是快樂的cell表格</th>
            </tr>
        </table>
    </body>
</html>

從上面的程式碼執行展示結果來看:兩個表格只有cellpadding程式碼值不同,第一個表格中"我是快樂的cell表格"這幾個字離它所在的單元格為0,那是因為設定了cellpadding="0"的原因;第二個表格中的"我是快樂的cell表格"這幾個字離它所在的單元格比較遠,那是因為cellpadding="20",也就是說"我是快樂的cell表格"離它所在的單元格的邊界的距離為20畫素。簡單的說,cellpadding的值等於多少,那表格內的單元格從自身邊界開始向內保留多少空白,單元格里的元素永遠都不會進入那些空白裡。||注意 cellpadding屬性用來指定單元格內容與單元格邊界之間的空白距離的大小。此屬性的引數值也是數字,表示單元格內容與上下邊界之間空白距離的高度所佔畫素點數以及單元格內容與左右邊界之間空白距離的寬度所佔的畫素點數。

e.g小結:cellspacing代表的是單元格與單元格之間的距離,cellpadding表示的是單元格內容與邊框的距離;前者的理解像margin,後者像padding;巢(cell)--表格的內容;巢補白(表格填充)(cellpadding)--代表巢外面的一個距離,用於隔開巢與巢空間;巢空間(表格間距)(cellspacing)--代表表格邊框與巢補白的距離,也是巢補白之間的距離

擴充一:表格的行與列如何合併?colspan跨列合併,rowspan跨行合併

程式碼展示:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>colspan與rowspan的區別</title>
        <style type="text/css">
            table{
                margin: 0 auto;
                margin-bottom: 50px;
                text-align: center;
            }
        </style>
    </head>
    <body>
    <table width="600" cellpadding="10" cellspacing="2" border="1" bordercolor="#ccc">
        <caption>正常展示:一行三列</caption>
        <tr>
            <td>說點啥了,不知道</td>
            <td>說點啥了,不知道</td>
            <td>說點啥了,不知道</td>
        </tr>
    </table>
    <table width="600" cellpadding="10" cellspacing="2" border="1" bordercolor="#ccc">
        <caption>現在要展示一行二列,怎麼辦?colspan跨列合併</caption>
        <tr>
            <td>說點啥了,不知道</td>
            <td colspan="2">說點啥了,不知道</td>
            <!-- <td>說點啥了,不知道</td> -->
        </tr>
    </table>
    <!-- ========無情分割線========================================================== -->
    <table width="600" cellpadding="10" cellspacing="2" border="1" bordercolor="#ccc">
        <caption>正常展示:二行二列</caption>
        <tr>
            <td>說點啥了,不知道</td>
            <td>說點啥了,不知道</td>
        </tr>
        <tr>
            <td>說點啥了,不知道</td>
            <td>說點啥了,不知道</td>
        </tr>
    </table>
    <table width="600" cellpadding="10" cellspacing="2" border="1" bordercolor="#ccc">
        <caption>現在要展示一行二列,怎麼辦?rowspan跨行合併</caption>
        <tr>
            <td rowspan="2">說點啥了,不知道</td>
            <td>說點啥了,不知道</td>
        </tr>
        <tr>
            <!-- <td>說點啥了,不知道</td> -->
            <td>說點啥了,不知道</td>
        </tr>
    </table>
    </body>
</html>

擴充二:如何合併表格邊框?border-collapse: collapse;

<!-- 合併表格單元格 -->
    <style type="text/css">
        table{
            border-collapse: collapse;
            /* border-collapse: separate; */
            /*Indicates whether the row and cell borders of a table are joined in a single border or detached as in standard HTML. */
        }
    </style>
    <table width="600" cellpadding="10" cellspacing="2" border="1" bordercolor="#ccc">
        <tbody>
            <tr>
                <td>單元格1</td>
                <td>單元格2</td>
                <td>單元格3</td>
            </tr>
        </tbody>
    </table>

最後chrome瀏覽器中,系統預設的表格邊框顏色grey,邊框間距為2等等

/* user agent stylesheet */
        /* table {
            display: table;
            border-collapse: separate;
            border-spacing: 2px;
            border-color: grey;
        } */
         
/*         border="1"預設等於border="1px"
        border-top-width: 1px;
        border-right-width: 1px;
        border-bottom-width: 1px;
        border-left-width: 1px; */
         
/*        bordercolor返回或設定物件的邊框顏色
        bordercolor:W3C - String 
        Specifies the color of the border of the element. Specify either a color name or RGB color code. 
*/

到此這篇關於table中cesllspacing與cellpadding的區別詳解的文章就介紹到這了,更多相關table中cesllspacing與cellpadding內容請搜尋指令碼之家以前的文章或繼續瀏覽下面的相關文章,

相關文章