替代显示none以从视口中取出内容

时间:2014-01-19 20:13:59

标签: html css viewport

我正在构建一个内联选项卡界面,我需要根据用户交互显示/隐藏元素。但是我不能简单地使用css display none属性来隐藏元素,因为它会破坏依赖元素的css属性的其他脚本,例如它的sze。

是否有防弹替代方案可以让我在屏幕外拍摄元素?

我在网上找到了一些建议,但都有缺点:

position:absolute;top:-9999px:将强制页面滚动回到顶部。

position:absolute;left:-9999px:将在从右到左的页面中创建滚动条。此外,它似乎需要更多的处理时间,因为浏览器实际上构建了一个更大的页面。

clip(1px,1px,1px,1px):将元素大小调整为1像素,这对我来说太大了(特别是当我隐藏了十几个元素时)。

3 个答案:

答案 0 :(得分:2)

如果您尝试从流中删除元素然后隐藏它,该怎么办?

position: absolute;
visibility: hidden;

答案 1 :(得分:1)

您可以将此css规则添加到您不想显示的元素

position: absolute;
visibility:hidden

元素不可见且不在流程中

答案 2 :(得分:0)

我发现这个解决方案似乎在几个框架中使用:

border:0;
clip:rect(0 0 0 0);
height:1px;
margin:-1px;
overflow:hidden;
padding:0;
position:absolute;
width:1px;

高度和宽度确保屏幕阅读器可以读取内容。 margin -1偏移这些尺寸,使元素的实际大小为0.