我正在使用Twitter Bootstrap,我注意到jQuery show()
或fadeIn()
没有使用类标记的DOM元素hidden
出现,因为jQuery函数仅删除了display: none
规范。但是,那visibility
仍设置为hidden
。
我想知道解决此问题的最佳方法是什么?
- 删除
hidden
元素上的类 - 更改可见性属性
- 在我自己的CSS中覆盖隐藏的类
特别是,我想知道用jQuery还是css进行修复是否更好以及为什么。
我正在使用Twitter Bootstrap,我注意到jQuery show()
或fadeIn()
没有使用类标记的DOM元素hidden
出现,因为jQuery函数仅删除了display: none
规范。但是,那visibility
仍设置为hidden
。
我想知道解决此问题的最佳方法是什么?
hidden
元素上的类特别是,我想知道用jQuery还是css进行修复是否更好以及为什么。
visibility: hidden
来自引导程序响应。
Answers:
您要查找的CSS类是.collapse
。这将元素设置为display: none;
因此,使用$('#myelement').show()
将正常工作。
更新: Bootstrap v3.3.6已将.collapse更新回:
.collapse {
display: none;
}
.slideDown()
,.fadeIn()
等一起使用,.hidden
在Bootstrap中适用于您不想显示的内容。
.collapse
现在也可以设置visibility: hidden;
这将淡化您不可见的元素并删除该类
$('#element.hidden').css('visibility','visible').hide().fadeIn().removeClass('hidden');
如果您真的不需要元素不可见(即占用空间),则可以重新定义.hidden(在您的本地CSS中,不要更改引导源,或者甚至在您的本地LESS文件中更好)。
.hidden
要使用javascript显示的元素。使用.collapse
代替。
警告:
bootstrap 3.3.0刚刚更改了。折叠为:
.collapse {
display: none;
visibility: hidden;
}
这是jQuery.show()的重大更改,我不得不恢复为内联:
<div class="alert alert-danger" style="display:none;" >
</div>
继续使用jQuery,如下所示:
$('.alert').html("Change a few things up and try submitting again.").show()
我在引导程序3.3.0中可以找到的仅适用于'display:none'的唯一类是
.navbar {
display: none;
}
.collapse('hide')
而.collapse('show')
不是jQuery的方法。您可以通过collapse
(隐藏)或collapse in
(显示)类直接在HTML中设置初始可见性。请参阅getbootstrap.com/javascript/#collapse。