1. 程式人生 > >HTML表格———表格題目位置、摺疊邊框、隔行增色、跨行跨列、巢狀表格

HTML表格———表格題目位置、摺疊邊框、隔行增色、跨行跨列、巢狀表格

建立基本表格

<table>
    <caption>這是一個表格</caption>
    <tr>
        <th>a</th>
        <th>b</th>
        <th>c</th>
    </tr>
    <tr>
        <td>1.1</td>
        <td>1.2</td>
        <td>1.3</td>
    </tr>
    <tr>
        <td>2.1</td>
        <td>2.2</td>
        <td>2.3</td>
    </tr>
    <tr>
        <td>3.1</td>
        <td>3.2</td>
        <td>3.3</td>
    </tr>

</table>

<table>標籤是建立一個表格

<tr>標籤是建立一行

<caption>標籤是建立表格的題目

<th>標籤是每行或者每列的歸屬,也是一個表格格子

<td>標籤是表格的一個格子

表格題目位置

表格題目預設是在表格上方居中,當然,表格也可以在下邊:

table{
caption-side:bottom;
}

單元格"外邊距"

有沒有發現,上邊我們建立的表格各個單元格的"外邊距"似乎讓我們不滿意,這樣雜亂分散我們的注意力啊!

單元格確實有內邊距和邊框,但是,單元格的外邊距和我們已經學過的盒模型不太一樣。

一、border-spacing

針對表格,我們不能單獨設表格的單元格"外邊距",可以為表格所有單元格設定一個共同的間距---"border-spacing"。

border-spacing: 0;

當然,我們還可以控制水平間距與垂直間距:

border-spacing:10px 30px;

這樣,10px就是水平間距了,30px就是垂直間距咯。。。

二、摺疊邊框 border-collapse

除了border-spacing,還有一種方法摺疊邊框

border-collapse:collapse;

表格隔行增色

要是先不說隔行增色,是不是先想到的是給那一行<tr>標籤增加一個類名,然後給這個類增加背景顏色啊,這樣的話。。可以。。。但是怎麼能不改變html就實現隔行增色呢?

這種方法稱為nth-child偽類,偽類知道吧,提醒一下a:link就是偽類

tr:nth-child(even){
background-color:red;
}
tr:nth-child(odd){
background-color:green;
}

哈哈哈哈大紅大綠,時尚時尚最時尚的,但是是不是實現了隔行變色了呢?

還有一種更靈活的nth-child偽類使用方法

tr:nth-child(2n){
background-color:red;
}
tr:nth-child(2n+1){
background-color:green;
}

n為0,則2n+1為第一個段落,n為1則2n為第二個段落,就這樣推。。。。

發散一下思維,那這種方法是不是還可以用在包含在一個容器裡的幾個段落?。。。把<tr>換成<p>就可以,你自己試試吧。

單元格跨多行/多列 rowspan/colspan

來,我們給第二行第一個單元格跨兩行

<tr>
        <td rowspan="2">1.1</td>
        <td>1.2</td>
        <td>1.3</td>
</tr>
<tr>
        <td>2.2</td>
        <td>2.3</td>
</tr>

是不是跨行了,注意啊,我把它跨行佔得那個單元格給刪了哦,要不就混亂了。。。

接下來,跨個列:

    <tr>
        <td colspan="3">1.1</td>
    </tr>

表格裡邊套表格

很簡單吧,就在那個單元格里再寫一個<table>......</table>

<tr>
        <td>3.1</td>
        <td>3.2</td>
        <!--<td>3.3</td>-->
        <td>
            <table>
                <tr>
                    <th>AAA</th>
                    <td>bbb</td>
                </tr>
                 <tr>
                    <th>CCC</th>
                    <td>ddd</td>
                </tr>
            </table>
        </td>
    </tr>

就這樣,要是寫樣式時,舉個例子,這樣

table table th{
    background-color:red;
}