表格、表格样式与长表格

发布于:2023-01-14 ⋅ 阅读:(419) ⋅ 点赞:(0)

目录

一、表格标签

1、主体标签(table)

2、行标签(tr)

3、列标签(td)

4、行列合并

二、表格样式属性

1、边界

2、边界间隔

3、边距重叠

4、文字居中

5、元素居中

三、长表格

1、区域划分

2、th标签

四、代码实例

1、表格

2、表格样式

3、长表格


一、表格标签

1、主体标签(table)

只要使用表格,表格附属的所有标签必须在table标签中,也就是table的后代元素        

2、行标签(tr)

一个行标签生成一行,但若没有列标签填充就是默认一个行表格

3、列标签(td)

列标签是行标签的子标签,必须嵌套在行标签tr中,一个标签就是在行中生成一列

4、行列合并

(1)行合并(colspan),里面的参数为合并的个数

(2)列合并(rowspan),里面的参数同样为合并的个数

二、表格样式属性

1、边界

通过border设置元素边界

2、边界间隔

用border-spaceing设置各个边界的距离,大小可以设置为像素

3、边距重叠

用border-collapse: collapse;将所有边界重叠,这种方式可以达到excel表格的效果

4、文字居中

(1)垂直居中,vertical-align: middle;

(2)水平居中,text-align: center;

5、元素居中

可以将元素的显示方式设置为表格,然后用文字居中的方式设置子元素居中效果,例如

display: table-cell;

三、长表格

1、区域划分

(1)头部(thead)

(2)中间(tbody)

(3)结尾(tfoot)

然后在各类别中使用tr和td设置表格

注意:在这里,tr是此三类的子元素,但如果不使用区域划分,那么浏览器会自行创建tbody,将所有tr变为子元素,此时tr就是table的后代元素,而不是子元素

2、th标签

头部可以用th标签,有居中加粗的效果

四、代码实例

1、表格

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>表格</title>
  </head>
  <body>
    <table border="1" width="50%" align="center">
      <!-- 此样式可通过css设置,这里是内联样式 -->
      <!-- 
            table是主体
            tr表示行数
            td表示列数
        -->
      <tr>
        <td>1</td>
        <td>2</td>
        <!-- colspan进行行合并,数值为合并单元格大小 -->
        <td colspan="2">3</td>
      </tr>
      <tr>
        <td>5</td>
        <td>6</td>
        <td>7</td>
        <td>8</td>
      </tr>
      <tr>
        <td>9</td>
        <td>10</td>
        <td>11</td>
        <!-- rowspan进行列合并,数值为合并单元格大小 -->
        <td rowspan="2">12</td>
      </tr>
      <tr>
        <td>13</td>
        <td>14</td>
        <td>15</td>
      </tr>
    </table>
  </body>
</html>

2、表格样式

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>表格样式</title>
    <!-- 
        在没有tbody的情况下,所有tr都会默认成为tbody的子元素
        所以此时tr不是table的子元素,而是后代元素
     -->
    <style>
      table {
        width: 50%;
        border: 1px solid black;
        /* 
        border-spacing用于设置两边距的间隔
        */
        /* 
        border-collapse: collapse; 
        用于取消边距,使之重叠
        */
        border-collapse: collapse;
      }
      td {
        border: 1px solid black;
        height: 50px;
        /* 上下左右文字居中 */
        text-align: center;
        vertical-align: top;
      }
      tr:nth-child(odd) {
        background-color: #bfa;
      }
      .box1 {
        height: 400px;
        width: 400px;
        background-color: red;
        /* 可通过设置display转换为表格从而用文本设置方式居中元素 */
        display: table-cell;
        text-align: center;
        vertical-align: middle;
      }
      .box2 {
        height: 100px;
        width: 100px;
        background-color: yellow;
        margin: 0px auto;
      }
    </style>
  </head>
  <body>
    <div class="box1">
      <div class="box2"></div>
    </div>

    <table>
      <tr>
        <td>学号</td>
        <td>性别</td>
        <td>年龄</td>
        <td>姓名</td>
      </tr>
      <tr>
        <td>1</td>
        <td>男</td>
        <td>18</td>
        <td>孙悟空</td>
      </tr>
      <tr>
        <td>2</td>
        <td>女</td>
        <td>18</td>
        <td>猪八戒</td>
      </tr>
      <tr>
        <td>3</td>
        <td>男</td>
        <td>18</td>
        <td>沙和尚</td>
      </tr>
      <tr>
        <td>3</td>
        <td>男</td>
        <td>18</td>
        <td>沙和尚</td>
      </tr>
      <tr>
        <td>3</td>
        <td>男</td>
        <td>18</td>
        <td>沙和尚</td>
      </tr>
      <tr>
        <td>3</td>
        <td>男</td>
        <td>18</td>
        <td>沙和尚</td>
      </tr>
      <tr>
        <td>3</td>
        <td>男</td>
        <td>18</td>
        <td>沙和尚</td>
      </tr>
    </table>
  </body>
</html>

3、长表格

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>长表格</title>
  </head>
  <body>
    <table border="1" align="center" width="50%">
        <!-- 
            长表格通过三个区域进行划分,头部(thead),中间(tbody)和结尾(tfoot)
            头部可以用th标签,有居中加粗的效果
         -->
      <thead>
        <th>日期</th>
        <th>收入</th>
        <th>支出</th>
        <th>合计</th>
      </thead>
      <tbody>
        <tr>
          <td>2022.1.1</td>
          <td>500</td>
          <td>300</td>
          <td>200</td>
        </tr>
        <tr>
          <td>2022.1.1</td>
          <td>500</td>
          <td>300</td>
          <td>200</td>
        </tr>
        <tr>
          <td>2022.1.1</td>
          <td>500</td>
          <td>300</td>
          <td>200</td>
        </tr>
        <tr>
          <td>2022.1.1</td>
          <td>500</td>
          <td>300</td>
          <td>200</td>
        </tr>
      </tbody>
      <tfoot>
        <tr>
          <td></td>
          <td></td>
          <td>合计</td>
          <td>800</td>
        </tr>
      </tfoot>
    </table>
  </body>
</html>