一般我们利用HTML中table做表格式,经常会遇到table、tr、td标签的width和height问题,而有时候发现在对tr、td设置宽度或高度时没有效果,其实这就是表格标签的特殊性,他们几个互有联系,互有制约,例如table的宽度限制了tr的宽度,table的高度又受tr高度的影响等等。所以要解决这类问题,需要知道在设置table、tr、td的width和height上需要注意的问题,具体分析可以看下面。
一、table标签的width和height设置
table标签设置的width和height其实都是一个最小值,也就是说当内容总宽度或行总高度没达到设定值时,表格会保持设定时的大小;而当内容分总宽度或行总高度超过设定值时,表格的宽度或高度会根据内容需要扩大。
二、tr标签的width和height设置
tr标签里面的width设置不起任何作用,因为tr的宽度受table宽度的限制,所以tr标签的宽度设置是无法起作用的。
然而,tr标签的height却有几种可能,需要分别讨论一下。
1、当表格中的tr都设置了height具体值,并且设置的总height值小于表格height值时,这时各个tr的height按照设置的值的比例来分配表格height值。
2、当表格中的tr都没设置height具体值时,这时按各tr内容高度的比例来分配表格总高度。
3、当表格中的tr有的设置了具体的数值,有的没有设置具体的数值为默认时,则先保证各个tr的基本需要,即内容所需要的高度,剩下的再满足设置了具体值的tr,之后再全部给没有设置具体值的tr,分配规则还是按内容高度比例。
4、当表格总高度不够,也就是说各tr总高度大于表格总高度时,不够的话如果要满足tr的基本需要,这里会自动延长表格的height的。然后再考虑设置了height的tr,最后考虑没有设置height的tr。
三、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之间的关系。首先肯定是根据内容的需要,在这个基础上,再根据设置的值来确定,哪个设置的值大就按照哪个,如果一个设置了值一个没有设置值,那么按照设置值的算。
参考来源:关于html中table表格tr,td的高度和宽度
最近开了个公众号用于推送前端学习总结,有更多有趣有用的文章在这里推送,请多多关注 。