最近在研究表格的时候,一直有个问题困惑很长时间:表格在table标签上定义非常简单容易,如果利用CSS定义却和意想的不一样,永远在表格与表格之间存在一定间距,这不是我们想要的样式,那么要怎样来通过CSS定义,才不会出现表格之间的间距呢,请继续往下看。

1.表格在table标签上定义的效果

     
     
     

在table标签上是这样的:

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

其中:

width="200":代表宽为200像素;

border="1":代表边框粗细为1像素;

cellspacing="0":代表单元格间距为O像素,即单元格与单元格之间的距离,也可以叫做单元格外的距离;

cellpadding="0":代表单元格边距为O像素,即单元格内填充的距离;

如果需要改变边框线的颜色为红色,只需要在这个表中的每个td标签上加上css定义style="border: 1px solid #F00;"样式如下:

     
     
     

细心的你也许会发现,中间的线变成红色,但外边线却还有点红加黑的感觉,此时我们还需要在table标签上加上CSS定义style="border: 1px solid #F00;"样式如下:

     
     
     

是不是就完美了呢?我把完整代码贴在下面,方便你也试试。

2.表格在CSS上定义的效果

如果去掉table与td标签上的定义,利用外置css来定义会是什么样的效果呢?首先说明一下,虽然在table标签上定义非常方便,但不利于移动终端上的体验,利用外置css来定义更容易实现网页在不同终端上的自适应。

我们使用:

table,td {
border: 1px solid #F00;
}
td {
height: 20px;
width: 70px;
}

来定义,效果如下:

     
     
     

显然不是我们想要的结果。

每个单元格之间都会有一定距离,这要怎么处理呢?有人说可以使用border-spacing属性定义表格单元格之间边框的距离。

说干就干,给table加个:

border-spacing:0 px;

定义,效果如下:

     
     
     

显然也是一样没有效果!

实际上,哪怕你使用:

margin: 0px;
padding: 0px;

这些CSS定义是一样没有效果的。

相较于table,tr,td这样的表格标签,使用像ul,ut,li和dl,dt,dd这样的列表标签更容易定义,下面就来一组列表标签:

<ul>
  <li></li>
  <li></li>
  <li></li>
</ul>
<ul>
  <li></li>
  <li></li>
  <li></li>
</ul>
<ul>
  <li></li>
  <li></li>
  <li></li>
</ul>

看看是如何通过css把它们定义成表格的。只需要来一组如下CSS:

ul {
display: table-row;
}
li {
height: 20px;
width: 70px;
border: 1px solid #F00;
list-style-image: none;
list-style-type: none;
display: table-cell;
}

就可以定义出如下效果:

说明:把ul定义为display: table-row即表格的行;li定义为display: table-cell,即表格的单元格,去掉li的项目符号与列表图像,用到list-style-image: none;list-style-type: none;其他的都好理解。

是不是还没有用table,tr,td这样的表格标签伤脑筋?

如果不想改动table,tr,td这样的表格标签,非常得要用CSS去实现,也不是没有办法,只需要给table标签加上border-collapse:collapse;这样的CSS定义即可,如:

table,td {
border: 1px solid #F00;

}
td {
height: 20px;
width: 70px;

}
table {
border-collapse:collapse;
}

就可以实现以下效果:

     
     
     

也就是说,通过border-collapse:collapse的CSS定义对表table中的tl或td实现了重叠,就达到了我们想要的效果。语法如下:

border-collapse : separate / collapse

值:

separate : 默认。单元格边框独立(标准HTML)

collapse : 单元格相邻边重叠合并

下面我把完整代码贴出来,可以自己操作下看看。

你可能想看:
文章来源:http://www.zhu-sir.com/jiaocheng/14.html
百度搜索本文
谷歌搜索本文

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。