表格

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6     </head>
 7     
 8     <script type="text/javascript">
 9     </script>
10     <style type="text/css">
11     table{
12         width:300px;
13         margin:0 auto;
14         border:1px solid black;
15         /*
16     table和td边框之间默认一个距离
17     通过border-spacing属性可以设置这个距离
18     */
19    border-spacing:5px;
20    /*
21    border-collapse可以用来设置表格的边框合并
22    如果设置了边框合并,则border-spacing自动失效
23    */
24   border-collapse:collapse;
25     }
26     td,th{
27         border:1px solid black;
28     }
29     tr:nth-child(even){
30         background-color:#bfa;
31     }
32     tr:hover{
33         background-color:#ff0;
34     }
35     </style>
36     <body>
37      <!--
38         在HTML中,使用table标签来创建一个表格 
39     -->
40     <table>
41         <!--
42         在table标签中使用TR来表示表格中的一行,有几行就有几个tr
43         在tr中需要使用td来创建一个单元格,有几个单元格就有几个td
44         -->
45         <tr>
46             <!-- 可以使用th标签来表示表头中的内容 
47             作用和td一样 就是会有一些默认效果 加粗居中-->
48             <th>学号</th>
49             <th>姓名</th>
50             <th>住址</th>
51         </tr>
52         <tr>
53             <!-- rowspan设置纵向的合并单元 -->
54             <td rowspan="2">a1</td>
55             <td>a2</td>
56             <td>a3</td>
57         </tr>
58         <tr>
59             
60             <!-- colspan横向的合并单元格 -->
61             <td colspan="2">b2</td>
62         </tr>
63     </table>
64     </body>
65 </html>

长表格

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6     </head>
 7     
 8     <script type="text/javascript">
 9      </script>
10     <style type="text/css">
11      /* 有一些情况下表格是非常长的
12       这时就需要将表格分为三个部分,表头,表格的主体,表格底部
13       thead 表头
14       tbody 表格主体
15       tfoot 表格底部
16       这三个标签的作用,就来区分表格的不同的部分,它们都是table的子标签
17       都需要直接写到table中,tr需要写在这些标签当中
18       
19       thead中的内容,永远会显示在表格的头部
20       tfoot的内容,永远都会显示表格的底部
21       tbody中的内容,永远都会显示表格的中间
22       
23       如果表格中没有写tbody,浏览器会自动在表格中添加tbody
24       并且将所有的tr都放到tbody中,所以注意tr并不是table的子元素,
25       而是tbody的子元素,通过table>tr无法选中行 需要通过tbody>tr
26       */
27      tbody>tr:nth-child(even){
28          background-color:#bfa;
29      }
30     </style>
31      <body>
32      <table>
33      <thead>
34          <tr>
35          <th>日期</th>
36          <th>收入</th>
37          <th>支出</th>
38          <th>合计</th>
39          </tr>
40      </thead>
41      <tbody>
42          <tr>
43              <td>10.24</td>
44              <td>500</td>
45              <td>300</td>
46              <td>200</td>
47          </tr>
48          <tr>
49                       <td>10.24</td>
50                       <td>500</td>
51                       <td>300</td>
52                       <td>200</td>
53          </tr>
54          <tr>
55                       <td>10.24</td>
56                       <td>500</td>
57                       <td>300</td>
58                       <td>200</td>
59          </tr>
60      </tbody>
61      <tfoot>
62          <tr>
63              <td></td>
64              <td></td>
65              <td>合计</td>
66              <td>100</td>
67          </tr>
68      </tfoot>
69     </table>
70     </body>
71 </html>

表格布局 但是现在这种方法也被CSS淘汰

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6     </head>
 7     
 8     <script type="text/javascript">
 9      </script>
10      <style type="text/css">
11     
12     </style>
13     <body>
14         <!-- 以前表格更多的情况实际上是用来对页面进行布局时,
15          但是这种方法已被CSS淘汰了
16          表格的列数由td最多的那行决定
17          表格是可以嵌套的,可以在td中在放置一个表格
18          -->
19          <table border="1" width=100% height=100%>
20              <tr height="100px">
21                  <td colspan="2"></td>
22              </tr>
23              <tr height="400px">
24                  <td width=20%></td>
25                  <td>
26                      <table border="1" width=100% height=100%>
27                          <tr>
28                              <td></td>
29                          </tr>
30                          <tr>
31                              <td></td>
32                          </tr>
33                      </table>
34                  </td>
35              </tr>
36              <tr height="100px" colspan="2">
37                  <td></td>
38              </tr>
39          </table>
40     </body>
41 </html>

利用table 解决高度塌陷,子元素将外边距传递给父元素的问题

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6     </head>
 7     
 8     <script type="text/javascript">
 9      </script>
10      <style type="text/css">
11     .box1{
12         width:300px;
13         height:300px;
14         background-color:#bfa;
15     }
16     .box1:before{
17         content:"";
18         display:table;
19         /* 规定元素应该生成的类型 
20         display:table;可以将一个元素设置为表格显示
21         没有写内容这里设置为空表格
22         可以阻止子元素将外边距传递给父元素,且不会对可见框产生任何影响
23         */
24     }
25     .box2{
26         width:200px;
27         height:200px;
28         background-color:yellow;
29         margin-top:100px;
30         /*
31         子元素和父元素相邻的垂直外边距会发生重叠,
32         子元素的外边距会传递给父元素
33         使用空的div不能阻止父子元素的外边距
34         使用空的table能阻止父子元素的外边距,防止外边距的重叠
35         */
36     }
37     .box3{
38         border:10px red solid;
39     }
40     .box4{
41         width:100px;
42         height:100px;
43         background-color:#bfa;
44         float:left;
45     }
46     /* 
47     解决父元素高度塌陷
48     */
49    .clearfix:after{
50        content:"";
51        display:block;
52        clear:both;
53    }
54    
55    /*
56    经过修改后的clearfix是一个多功能的,
57    既可以解决高度塌陷,又可以确保父元素和子元素的垂直外边距不会重叠
58    */
59    .clearfix:before,
60    .clearfix:after{
61        content:"";
62        display:table;
63        clear:both;
64    }
65     </style>
66     <body>
67         <div class="box1">
68             <table></table>
69             <div class="box2">
70             </div>            
71         </div>
72         <div class="box3 clearfix">
73             <div class="box4">
74                 
75             </div>
76         </div>
77     </body>
78 </html>
原文地址:https://www.cnblogs.com/zuiaimiusi/p/11231758.html