如何在html的表格中加入边框线

html-css09

如何在html的表格中加入边框线,第1张

html的表格中加入边框线方法:

一、如何在html的表格中加入边框线

只对table标签设置border(边框)样式,将让此表格最外层table一个边框,而表格内部不产生边框样式。

案例详细如下:

1、对应css代码

<style> 

.table-a table{border:1px solid #F00} 

/* css注释:只对table标签设置红色边框样式 */ 

</style>

2、对应html代码片段

<div class="table-a"> 

<table width="400" border="0" cellspacing="0" cellpadding="0"> 

<tr> 

<td width="105">站名</td> 

<td width="181">网址</td> 

<td width="112">说明</td> 

</tr> 

<tr> 

<td>DIVCSS</td> 

<td>域名</td> 

<td>CSS学习</td> 

</tr> 

<tr> 

<td>CSS5</td> 

<td>域名</td> 

<td>CSS切图</td> 

</tr> 

</table> 

</div>

3、案例截图

二、对td设置边框

对table表格td设置边框样式,表格对象内td将实现边框样式,但中间部分td会导致出现双边框。

详细案例教程如下:

1、对应css代码

<style> 

.table-b table td{border:1px solid #F00} 

/* css注释:只对table td标签设置红色边框样式 */ 

</style>

2、对应html源代码片段

3、案例截图

三、对table和td技巧性设置表格边框   -

如上第二点,只对表格对象td设置单一边框样式,中间部分td与td标签之间就会出现双边框现象。

解决方法:对td只设置两个边的边框,对table也设置两个边的边框样式。

解释:对td设置左与上边框,这样td与td相邻就会只出现单一边框样式,这样就会出现表格右侧和下部没有边框,这个时候我们设置table右和下 边框解决显示右侧和下侧td剩下未显示边框。

1、对应css代码:

<style> 

.table-c table{border-right:1px solid #F00border-bottom:1px solid #F00} 

.table-c table td{border-left:1px solid #F00border-top:1px solid #F00} 

/* 

css 注释: 

只对table td设置左与上边框; 

对table设置右与下边框; 

为了便于截图,我们将css 注释说明换行排版 

*/ 

</style>

2、对应html源代码片段:

<div class="table-c"> 

<table width="400" border="0" cellspacing="0" cellpadding="0"> 

<tr> 

<td width="105">站名</td> 

<td width="181">网址</td> 

<td width="112">说明</td> 

</tr> 

<tr> 

<td>DIVCSS</td> 

<td>域名</td> 

<td>CSS学习</td> 

</tr> 

<tr> 

<td>CSS5</td> 

<td>域名</td> 

<td>CSS切图</td> 

</tr> 

</table>

3、表格边框实现案例截图

四、对table和td设置背景,实现完美表格边框

1)、先设置table css背景为红色

2)、设置table单元之间间距为1

使用DW软件辅助设置table表格单元间距为1,具体DW软件可视化操作步骤简要说明,首先(视图模式)选中表格后,对应DW软件编辑窗口底部会“属性”面板会出现对应table表格属性设置地方,我们将“间隔”填写为“1”。这个时候我们会看到table表格标签里cellspacing值为“1”(cellspacing="1")。

借助DW软件设置表格单元之间间距

直接对<table>标签内cellspacing="1"即可,得到:

<table width="400" border="0" cellspacing="1" cellpadding="0">

3)、设置table td背景为白色

2、css代码:

<style> 

.table-d table{ background:#F00} 

.table-d table td{ background:#FFF} 

/* 

css注释:设置table背景为红色,td背景为白色 */ 

</style>

3、对应html源代码:

<div class="table-d"> 

<table width="400" border="0" cellspacing="1" cellpadding="0"> 

<tr> 

<td width="105">站名</td> 

<td width="181">网址</td> 

<td width="112">说明</td> 

</tr> 

<tr> 

<td>DIVCSS</td> 

<td>域名</td> 

<td>CSS学习</td> 

</tr> 

<tr> 

<td>CSS5</td> 

<td>域名</td> 

<td>CSS切图</td> 

</tr> 

</table> 

</div>

4、表格边框案例截图

五、css table表格边框实现总结

以上四种方式实现table表格边框样式方法,推荐使用第三和第四种方法来解决表格边框样式。table边框布局方法并能掌握,平时需要时灵活运用。

一、基础铺垫:

① table元素的部分属性(针对于本话题):1

2

bgcolor="#ffffff" bordercolordark="" bordercolorlight="" >

border 表格内单元格边框的宽度 [STF][^hello]

[^hello]:注:DTD指示此属性允许在哪种DTD中使用。S=Strict, T=Transitional, F=Frameset.cellspacing 单元格与单元格之间的 间距 [STF]

cellpadding 单元格的内边距 [STF]

width 表格的宽度 [STF]

bordercolor、bgcolor [TF]但如大家熟知,给border定义为border=”1”,表现缺不符预期,是比一像素粗的边框。

综上这些在元素内用属性定义表现的方式,已被逐渐不推荐——弃用。真正的表现性的东西,应该由css来完成。

但目前可行的,相对科学的、实惠的实现方式究竟如何呢?

② table方面css部分属性(针对于本话题):table{border-collapse:collapseborder-spacing:0}

td{padding:0} 相当于cellpadding

border-collapse 定义相邻单元格边框是否合并

border-spacing 定义单元格与单元格之间的 间距相当于cellspacing(除ie6/7外浏览器识别,ie6/7用expression弥补,

见下,管它性能不性能的呢,谁让他用破ie呢)

二、方案(从上到下推荐度逐渐降低):

① css法(table元素上的一些标签属性不用写)1

2table{border-collapse:collapseborder-spacing:0jerry:expression(cellSpacing='0')}

td{border:1px solid

② 表格背景和单元格背景色差配合法(table元素上的一些标签属性不用写)1

2table{ background:#000border-collapse:separateborder-spacing:1pxjerry:expression(cellSpacing='1')}

td{background:#fff}

③ css边框拼补法(table元素上的一些标签属性不用写)1

2

3

4

5table{

border-collapse:collapseborder-spacing:0jerry:expression(cellSpacing='0')

border-right:1px solid #000border-bottom:1px solid #000

}

td{border-left:1px solid #000border-top:1px solid #000}

④ css和标签属性结合法1

2table{border-collapse:collapseborder-spacing:0jerry:expression(cellSpacing='0')}

⑤ 标签法(原理同②)1

2

3

4

5

6

7

8

9

三:注意点

经测试对于单元格边距,单元格间距,单元格边框这三项,如果在元素标签的属性 和 css中的属性 同时定义的情况下:(此结果在各浏览器下和各ie版本下以及各ie版本的各种兼容模式下都适合)css中的优先级比标签属性的高的是:单元格边距、单元格间距 这两项。也就是说比如以下这种情况下,1

2

3table{border-spacing:0jerry:expression(cellSpacing='0')}

table td{padding:0}

实际表现以css定义为准。

css的定义与标签属性的定义累加(如果有相邻合并,则只累加不相邻的单元格边框)的是:单元格边框宽度。也就是说比如以下这种情况下,1

2table td{border:3px solid #000}

则实际表现结果的单元格边框宽度为8px。注意如果有相邻合并定义,则只累加不相邻的单元格边框。

附html代码,可以用不同浏览器,及IE的各个版本去测试,及其各种兼容模式,全部没问题