使用CSS处理表格边框样式化

来源:互联网 发布:java微信开发获取code 编辑:程序博客网 时间:2024/04/27 16:06

在以前的web开发栏目中,我介绍了不少处理HTML表格的方法,尽管现在使用表格来布局网页的方法已经不再时髦了,但是您依然可以使用表格来显示表列数据。

显示和样式化表格的方法有很多种,在这篇文章中,我将介绍使用CSS对表格边框进行样式化的方法。

链接

CSS2表格模型是基于HTML 4.01表格模型的。表格包含了一个可选的锚标记和单元格以及数据行,表格模型包含以下的元素:表格、锚、数据行、数据行组、数据列、数据列组和单元格。这篇文章将集中讲解表格中各个元素的边框处理方法。

边框

根据不同的需求,您可以对表格和单元格应用不同的边框。您可以定义整个表格的边框也可以对单独的单元格分别进行定义。CSS的边框属性可以指定边框的大小以及颜色和类型。以下的代码定义了宽度为5个像素的黑色实线边框:

Js代码 复制代码
  1. TABLE { 5px solid black; }  

 除此以外,您还可以使用相同的语法为表格中单独的单元格分别指定边框属性。您可以使用以下的属性值来定义边框类型:

l none: 指定表格没有边框,所以边框宽度为0。

l dotted: 由点线组成的表格边框。

l dashed: 由虚线组成的表格边框。

l solid: 由实线组成的表格边框。

l Double: 由双实线组成的表格边框。

l Groove: 槽线效果边框。

l ridge: 脊线效果边框,和槽线效果相反。

l inset: 内凹效果边框。

l outset: 外凸效果边框,和内凹效果相反。

每个边框类型都可以指定一种颜色,边框是绘制在背景颜色上的,列表A使用边框属性来样式化整个表格以及锚标记和单独的单元格。

Html代码 复制代码
  1. <html>  
  2.   
  3. <head><title>HTML Table</title></head>  
  4.   
  5. <style type="text/css">  
  6.   
  7. TABLE {   
  8.   
  9. background: blue;   
  10.   
  11. border-collapse: separate;   
  12.   
  13. border-spacing: 10pt;   
  14.   
  15. border: 5px solid red; }   
  16.   
  17. TD, TH {   
  18.   
  19. background: white;   
  20.   
  21. border: inset 5pt;   
  22.   
  23. horizontal-align: right; }   
  24.   
  25. CAPTION { border: ridge 5pt blue; }   
  26.   
  27. </style><body>  
  28.   
  29. <table summary="TechRepublic.com - Tables and CSS">  
  30.   
  31. <caption>First Quarter Sales</caption>  
  32.   
  33. <thead><tr>  
  34.   
  35. <thabbrthabbr="salesperson" scope="col">Person</th>  
  36.   
  37. <thabbrthabbr="sales" scope="col">Sales</th>  
  38.   
  39. </tr></thead>  
  40.   
  41. <tbody><tr>  
  42.   
  43. <td>Mr. Smith</td>  
  44.   
  45. <td>600.00</td>  
  46.   
  47. </tr><tr>  
  48.   
  49. <td>Mr. Jones</td>  
  50.   
  51. <td>0000.00</td>  
  52.   
  53. </tr><tr>  
  54.   
  55. <td>Ms. Williams</td>  
  56.   
  57. <td>0000.00</td>  
  58.   
  59. </tr></tbody>  
  60.   
  61. <tfoot><tr>  
  62.   
  63. <td colspan="2">Let's sale, sale, sale!</td>  
  64.   
  65. </tr></tfoot></table></body></html>  

 

 

列表A

这个例子展示了很多可供使用的表格边框的选项,您可以使用您熟悉的度量单位(像素、磅,行长单位等)。设定边框的尺寸,您可以使用十六进制数值或颜色名称来指定边框颜色。以下的例子演示了定义边框的方法。

Html代码 复制代码
  1. border: 5px solid red;  

 

在这一条语句中融合了宽度、样式和颜色属性的定义,但是您也可以对这些元素进行单独定义,如下所示:

 

Html代码 复制代码
  1. border-width: 5px;   
  2.   
  3. border-style: solid;   
  4.   
  5. border-color: red;  

除了将表格作为一个整体进行定义,您也可以将表格边框的四个部分分别进行定义,包括顶部、底部、左边和右边。列表B中的代码将刚才的例子中的表格分成四个部分单独定义。

Html代码 复制代码
  1. <html><head><title>HTML Table</title></head>  
  2.   
  3. <style type="text/css">  
  4.   
  5. TABLE {   
  6.   
  7. background: blue;   
  8.   
  9. border-collapse: separate;   
  10.   
  11. border-spacing: 10pt;   
  12.   
  13. border-top: 15px solid red;   
  14.   
  15. border-left: 15px solid red;   
  16.   
  17. border-right: 5px dashed black;   
  18.   
  19. border-bottom: 10px dashed blue; }   
  20.   
  21. TD, TH {   
  22.   
  23. background: white;   
  24.   
  25. border: outset 5pt;   
  26.   
  27. horizontal-align: right; }   
  28.   
  29. CAPTION {   
  30.   
  31. border: ridge 5pt blue;   
  32.   
  33. border-top: ridge 10pt blue; }   
  34.   
  35. </style><body>  
  36.   
  37. <table summary="TechRepublic.com - Tables and CSS">  
  38.   
  39. <caption>First Quarter Sales</caption>  
  40.   
  41. <thead><tr>  
  42.   
  43. <thabbrthabbr="salesperson" scope="col">Person</th>  
  44.   
  45. <thabbrthabbr="sales" scope="col">Sales</th>  
  46.   
  47. </tr></thead>  
  48.   
  49. <tbody><tr>  
  50.   
  51. <td>Mr. Smith</td>  
  52.   
  53. <td>600.00</td>  
  54.   
  55. </tr><tr>  
  56.   
  57. <td>Mr. Jones</td>  
  58.   
  59. <td>0000.00</td>  
  60.   
  61. </tr><tr>  
  62.   
  63. <td>Ms. Williams</td>  
  64.   
  65. <td>0000.00</td>  
  66.   
  67. </tr></tbody>  
  68.   
  69. <tfoot><tr>  
  70.   
  71. <td colspan="2">Let's sale, sale, sale!</td>  
  72.   
  73. </tr></tfoot></table></body></html>  

 

列表B

您可能注意到了整个CAPTION元素的边框定义为蓝色5磅的脊线效果,而CAPTION边框的顶部设定为10磅。如果单独的边框设定(左边、右边、顶部、底部)出现在后面将覆盖原有的整体边框设定。

除此以外,在上一个例子中,通过分配TABLE元素的边框属性,可以在一个表格中实现多重边框(锚标记、表格主体、表头、单独的单元格等等)。

边框间距

您可以通过边框间距属性来指定相邻的单元格之间的距离,您可以指定一个或两个值,如果指定了一个值,那么水平和垂直间距都将使用这一个值;如果指定了两个值,那么第一个值规定了水平间距而第二个值指定了垂直间距。这些值不能是负值,我在这个例子中使用了10磅的间距值。

表格行为

边框的collapse属性设定了表格的边框模型,该属性的默认值是独立的边框模型,单独的边框模型使用border-spacing属性作为不同边框之间的间距,该间距使用表格元素作为填充背景。

对于边框模型中,万维网联盟(World Wide Web Consortium)定义了以下的规则来解决表格样式的冲突:

l 使用‘隐藏’边框属性的边框优先于其他的边框属性,任何使用‘隐藏’属性的边框比其它的边框属性处理优先级要高。

l 使用‘无样式’边框的优先级最低,如果在同一位置所有元素的边框属性都是‘无样式’,表格边框才会被忽略。(注意,‘无样式’是边框样式的默认值。)

l 如果没有样式设置为‘隐藏’而且至少有一个样式没有设置为‘无样式’,那么宽边框的优先级高于细边框。边框样式的优先级如下:双实线、单实线、虚线、点线、脊线、外凸、槽线,级别最低的是内凹。

l 如果边框样式只有颜色不同,那么单元格的样式优先级高于行的优先级,而且高于行组、列、列组和整个表格。

边框

表格和其他的HTML元素一样,拥有很多CSS样式选项。表格和单元格的边框是一个很好的例子,CSS应当可以满足您对表格样式的需要。但是使用CSS格式化的表格在不同的浏览器中会显示出不同的效果,因此需要进行广泛的测试。

您是CSS的‘粉丝’么?您在HTML表格的样式上使用了那些选项?请在文章的讨论区共享您的经验。