Javascript 改变TD和x27的可视性;在firefox和chrome中,s(使用显示样式相互交换)出现错误

Javascript 改变TD和x27的可视性;在firefox和chrome中,s(使用显示样式相互交换)出现错误,javascript,html,Javascript,Html,已解决,请阅读下面的内容 我有一个有几列的表。对于每个列,都有一个隐藏列,其中包含一个输入框,用户可以切换该输入框以启用该列的筛选。除了内容外,两个td的设置完全相同。这是“一”列的设置 类型 .. 在我的一生中,我无法理解为什么在交换发生时(头列设置为display:none,输入列设置为display:block),在chrome和firefox(可能还有opera)中,列会重叠,但它不会保留其装箱位置。它向左移动,就好像它有0px的宽度一样。tdHeadInput类的宽度和高度设置为10

已解决,请阅读下面的内容

我有一个有几列的表。对于每个列,都有一个隐藏列,其中包含一个输入框,用户可以切换该输入框以启用该列的筛选。除了内容外,两个td的设置完全相同。这是“一”列的设置

类型
..
在我的一生中,我无法理解为什么在交换发生时(头列设置为display:none,输入列设置为display:block),在chrome和firefox(可能还有opera)中,列会重叠,但它不会保留其装箱位置。它向左移动,就好像它有0px的宽度一样。tdHeadInput类的宽度和高度设置为100%。输入显示ok,但它浮动在下一列的顶部。保存输入框的列显示为0px宽度的框(即消失)

有什么想法吗?:)

好吧,我想我问这个问题时很不耐烦。在谷歌搜索和尝试不同的东西后,我想出了一个解决办法。我不知道为什么,但我不得不使用display=''而不是display='block'。然后在IE、firefox和chrome中运行。奇怪的是,我的网站上还有很多其他东西使用display='block'(全部通过javascript),它们都工作得很好。就是这个,正好是桌子上的TD。这里有区别吗


如果有人对此有所了解,请评论:)但原始问题尚未解决。

您不需要使用
display=“
,而应该使用
display:table cell
。第一个为
显示
属性提供了无效值,这会导致浏览器忽略它,并返回到该元素类型的该属性的“默认”值。后者是
td
元素的默认
display
属性。顺便说一句,请将您的答案作为答案发布,而不仅仅是问题的更新。
<td id="MainContent_gdComponentsHead2" class="tdHead" width="88px" onclick="..">Type</td>
<td id="MainContent_gdComponentsInput2" class="tdHead" width="88px" style="display:none"><input id="MainContent_gdComponents_filter2" onkeydown=".." type="text" class="tdHeadInput" value="" />&nbsp;</td>
<td class="tdHeadEdit" onclick="MainContent_gdComponents_toggleFilter('MainContent_gdComponents','2','MainContent_gdComponents_filter2')" style="width:9px">..</td>