首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使DIV在CSS和JavaScript中不可见

使DIV在CSS和JavaScript中不可见
EN

Stack Overflow用户
提问于 2011-02-25 11:22:13
回答 6查看 95.4K关注 0票数 28

通过将display设置为none并将visibility设置为hidden,我成功地使一个DIV标记在JavaScript中不可见。它也可以通过这个类来实现:

代码语言:javascript
复制
.invisible {
    display: none;
    visibility: hidden;
}

显示无将确保DIV框为空,隐藏可见性将确保其不可见。这种方法的问题是,当我有可滚动的DIVs或具有溢出内容的文本this时,当你设置display: none时,一些浏览器会忘记这些元素的滚动位置。有没有更好的方法使DIV不可见而不使用display属性?如果可能的话,我宁愿不使用JavaScript来记录滚动位置等。

编辑:

在你的帮助下,我成功地解决了这个问题,我应用了以下方法:

代码语言:javascript
复制
.invisible {
    visibility: hidden;
    position: absolute;
    top: -9999px;
}

.visible {
    visibility: visible;
    position: static;
}

我试着向左:-9999px,但这会扩展IE中的垂直滚动条...我还将我的文本区域包装在另一个DIV中,并对其应用了可见/不可见样式,因为否则文本区域将失去其滚动位置。我在我的iPhone上用Chrome、火狐、IE和Safari进行了测试。需要注意的是,在FF中,围绕文本区的DIV似乎没有帮助,滚动条仍然重置。但是可滚动的DIVs现在很好用了。谢谢你的帮忙!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-02-25 11:26:00

这可能会起作用:

代码语言:javascript
复制
.invisible {
    position: absolute;
    left: -9999px;
}

编辑:我会看一看HTML5样板代码中的common helpers,以探索其他使事物消失的方法。

票数 10
EN

Stack Overflow用户

发布于 2011-02-25 11:24:47

如果您希望元素不可见但仍然呈现,则可以只使用visibility:hiddendisplay:none将完全删除它,并导致您提到的滚动行为。

票数 31
EN

Stack Overflow用户

发布于 2017-01-25 13:10:46

您可以使用jQuery来获得解决方案。如果你想完全隐藏/显示div,你可以使用:

代码语言:javascript
复制
$('#my_element').show()
$('#my_element').hide()

如果你想让你的div变得不可见,并且它仍然存在于页面中,那么你可以使用高效技巧:

代码语言:javascript
复制
$('#my_element').css('opacity', '0.0');  // invisible Maximum
$('#my_element').css('opacity', '1.0');  // visible maximum
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5113246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档