Jquery 在显示:表格元素上使用show()时保持边框间距隐藏显示:无
我有一个Jquery 在显示:表格元素上使用show()时保持边框间距隐藏显示:无,jquery,html,css,Jquery,Html,Css,我有一个表单和一个select元素,用户可以从中选择value=“Yes”或value=“No”。如果value=“Yes”,JQuery使用.show()来显示包含文本区域的div,以便用户可以解释是的答案。否则,需要隐藏textarea 表单被设置为CSS表格,表单的每一行都是一个表格行,带有一个或多个表格单元格s 我尝试在CSS中使用display:none隐藏textarea,因为当我使用JQuery隐藏它时,它会在屏幕上闪烁片刻,然后JQuery开始隐藏它 但是,最初使用display
表单
和一个select
元素,用户可以从中选择value=“Yes”
或value=“No”
。如果value=“Yes”
,JQuery使用.show()
来显示包含文本区域的div
,以便用户可以解释是的答案。否则,需要隐藏textarea
表单被设置为CSS表格
,表单的每一行都是一个表格行
,带有一个或多个表格单元格
s
我尝试在CSS中使用display:none
隐藏textarea
,因为当我使用JQuery隐藏它时,它会在屏幕上闪烁片刻,然后JQuery开始隐藏它
但是,最初使用display:none
隐藏它会导致另一个问题:当随后使用JQuery显示它时,它会忽略左右两侧的间距10px
设置为使用JQuery隐藏它,如果取消注释CSS的最后一行,您可以看到在使用JQuery显示它之后,边间距是如何消失的。(闪烁的问题在小提琴上不明显,因为我去掉了所有其他代码。)未注释时,JQuery中的两条注释行将使其与display:none
一起工作,但它们是通过操纵CSS来实现的,这意味着如果间隔发生变化,则必须手动更改
在使用show()
时,是否有办法保持边框间距
?当我写这个问题时,我发现了问题所在。元素需要是display:table
。CSS最初设置为display:none
,.show()
没有指示它需要返回到display:table
,而是显示为display:block
。这就是为什么display:table
格式设置边框间距
不起作用的原因:它不适用于display:block
我想出的最简单的解决方案根本不是使用.show()
,而是使用display:none
创建一个新的表\u hidden
类,然后使用.removeClass()
和.addClass()
来实现显示/隐藏