table中的tr的默认display:table-row,虽然可以修改为display:block但是就失去了tr特有的显示效果,如(td自动对齐);
并且在tr中对起设定padding是有用的,可以增加内边距,但是设定margin是没有用的,tr的外间距依然是0;
解决方案:
css的两个属性:border-collapse:collapse / separate & border-spacing:10px 10px;
需要用border-collapse & border-spacing联合控制tr的间距;
如:
123 | < table style = "border-collapse:separate; border-spacing:10px;" > < tr ></ tr > </ table >
|
table中设置tr行间距
CSS border-collapse 属性设置表格的边框是否被合并为一个单一的边框
值 | 描述 |
separate | 默认值。边框会被分开。不会忽略 border-spacing 和 empty-cells 属性。 |
collapse | 如果可能,边框会合并为一个单一的边框。会忽略 border-spacing 和 empty-cells 属性。 |
inherit | 规定应该从父元素继承 border-collapse 属性的值。 |
border-collapse属性加上border-spacing属性就可以设置tr行间距
1 <table style="border-collapse:separate; border-spacing:0px 10px;"> 2 <tr> 3 <td>那片笑声躺我想起我的那些花儿</td> 4 </tr> 5 <tr> 6 <td>在我生命每个角落静静为我开着</td> 7 </tr> 8 </table>
关于html中table表格tr,td的高度和宽度
关于html中table表格tr,td的高度和宽度
做网页的时候经常会遇到各种各样的问题,经常遇到的一个就是会碰到表格宽度对不齐的问题。首先,来分析一下这三个标签中height和width的区别:
1、table中的width和height设置及其作用:
table中设置的height其实是设置一个最小值,也就是当表格中的内容或者行高总值超过这个设置值时,会自动延长表格的height值,当表格中的内容或者行高没有达到这个值时,会自动扩大到这个值。
table中设置的width值一般为表格宽度的最大值,不能改变,即使内部的内容宽度超过也不能改变。(这个内部内容如果是图片的话是可以改变表格宽度的。)
2、tr标签中width和height设置及其作用:
tr标签里面的width设置不起任何作用,因为从第一点可以看出,表格的width是不能改变的,tr标签当然就不起作用了。
所以在tr中只有讨论height设置的可能了,tr中的height设置和几个tr之间的设置有关。
当几个tr都设置了height的具体数值时,各个tr的height按照设置的值的比例来分配总的height值,注意这里说的是总的height值。
当几个tr都没有设置height具体值时,平均分配总的height值。
当有的tr设置了具体的数值,有的没有设置具体的数值为默认时,先保证各个tr的基本需要,剩下的再满足设置了具体值的tr,之后再全部给没有设置具体值的tr。
最后一种情况还要考虑总的宽度不够tr总的设置值的情况,不够的话要满足tr的基本需要,这里会自动延长表格的height的。然后再考虑设置了height的tr,最后考虑没有设置height的tr。
3、td标签中width和height设置及其作用:
td标签里面的width和height都是起作用的。先看td的width吧,某一个td的width是和所处的一列每个td的width都相关的,取其中最大的width作为这一列中每个td的width,一定要从全局把握某个td的width,不能从这一个的width设置就断言它的宽度就是多少,这样是不准确的。
当我们把每一列的宽度都弄清楚之后,事情就好办了。这时候各个td之间的宽度分配按照第二条中各tr的height分配规律,
有一点不同的是全部是默认的情况下,各td的width不是平均分配,而是根据各自的实际内容按比例分配。
再看看td的height设置吧,各个td的height要看这个td所在的行的最大高度来确定这一行的每个td的height,然后各个行的高度情况和tr中的height分配原则是一样的。
还有一点要注意,就是td的height和tr的height之间的关系。首先肯定是根据内容的需要,在这个基础上,再根据设置的值来确定,哪个设置的值大就按照哪个,如果一个设置了值一个没有设置值,那么按照设置值的算。
table合并单元格 colspan(跨列)和rowspan(跨行)
colspan
和rowspan
这两个属性用于创建特殊的表格。
<td colspan="value"><td rowspan="value">
colspan
是“column span(跨列)”的缩写。colspan
属性用在td标签中,用来指定单元格横向跨越的列数:
在浏览器中将显示如下:
单元格1 | ||
单元格2 | 单元格3 | 单元格4 |
该例通过把colspan
设为“3”, 令所在单元格横跨了三列。如果我们将colspan
设为“2”,则该单元格将只跨越两列,于是有必要在第一行插入另外一个单元格,以确保两行占据相同的列数。
该例在浏览器中将显示如下:
单元格1 | 单元格2 | |
单元格3 | 单元格4 | 单元格5 |
rowspan
的作用是指定单元格纵向跨越的行数。
浏览器中将显示如下:
单元格1 | 单元格2 |
单元格3 | |
单元格4 |
上例中的单元格1,其rowspan
被设为“3”,这表示该单元格必须跨越三行(本身一行,加上另外两行)。因此,单元格1和单元格2在同一行,而单元格3和单元格4形成独立的两行。
综合实例
ss | |||
<html>
<head>
</head>
<table border= "1 " width= "200 " >
<tr>
<td colspan="4" >ss
</td>
</tr>
<tr>
<td width= "25% "> </td>
<td width= "25% "> </td>
<td width= "25% "> </td>
<td width= "25% "> </td>
</tr>
<tr>
<td width= "25% "rowspan="2"> </td>
<td width= "25% "> </td>
<td width= "25% "> </td>
<td width= "25% "> </td>
</tr>
<tr>
<td width= "25% "> </td>
<td width= "25% " rowspan="3"> </td>
<td width= "25% "> </td>
</tr>
<tr>
<td width= "25% " colspan="2" > </td>
<td width= "25% "> </td>
</tr>
<tr>
<td width= "25% "> </td>
<td width= "25% "> </td>
<td width= "25% "> </td>
</tr>
</table>
</html>
CSS border-collapse 属性设置表格的边框是否被合并为一个单一的边框
值 | 描述 |
separate | 默认值。边框会被分开。不会忽略 border-spacing 和 empty-cells 属性。 |
collapse | 如果可能,边框会合并为一个单一的边框。会忽略 border-spacing 和 empty-cells 属性。 |
inherit | 规定应该从父元素继承 border-collapse 属性的值。 |
border-collapse属性加上border-spacing属性就可以设置tr行间距
1 <table style="border-collapse:separate; border-spacing:0px 10px;"> 2 <tr> 3 <td>那片笑声躺我想起我的那些花儿</td> 4 </tr> 5 <tr> 6 <td>在我生命每个角落静静为我开着</td> 7 </tr> 8 </table>
来源:https://www.cnblogs.com/as3lib/p/6606430.html