JS设置table tr 的display 失效

通过 javaScript 控制table的 tr 隐显状态:

将 style.display 设置成 block 后, 会出现 只对第一个单元格 td 有效的情况:

该 tr 就不是普通的 【表格】之【行】了, 而就像普通的 div 一样普通的块, 所以

<td colspan=6 > 也会失效

正确的做法是将 tr 的 显示模式设置为 【table-row】

表格中tr的display:block在火狐中显示错乱的解决方法

按照常理,对于某一单元行需要显示时,使用display:block属性,不需要显示时使用display:none属性,而且这样做在IE浏览器中显示正常,没有任何问题。

但是当用Firefox浏览时却出现了布局错乱的问题,然后通FireBug去看了下源码,调试下了,发现是display:block属性搞的鬼。

1、当表格为多列的情况下,属性为"display:block"行的内容宽度仅与第一列宽度相同,也就是说无论你使colspan的属性值为多少,剩余列的空间都不进行解析。 
2、同一行反复的在"display:none;"与"display:block;"两个状态间切换时,表格的底部会持续的产生多余的空白空间以至于造成页面布局的扭曲。

解决方法: 
1、用display:table-row属性来调试,发现者FireFox下正常了,但IE是不支持改属性的,怎么办呢?用JS来做判断,然后做兼容吧。   

根据不同浏览器进行判断设置样式    伪代码// if(ie){ display:block}else{ display:table-row}
2、另外一个很简单也很可行的方法,就是用display:' ' 这个属性dispaly后面不加任何的东西,很奇怪,这样就兼容了Firefox和IE了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值