我正在构建一个内联选项卡界面,我需要根据用户交互显示/隐藏元素。但是我不能简单地使用css display none
属性来隐藏元素,因为它会破坏依赖元素的css属性的其他脚本,例如它的sze。
是否有防弹替代方案可以让我在屏幕外拍摄元素?
我在网上找到了一些建议,但都有缺点:
position:absolute;top:-9999px
:将强制页面滚动回到顶部。
position:absolute;left:-9999px
:将在从右到左的页面中创建滚动条。此外,它似乎需要更多的处理时间,因为浏览器实际上构建了一个更大的页面。
clip(1px,1px,1px,1px)
:将元素大小调整为1像素,这对我来说太大了(特别是当我隐藏了十几个元素时)。
答案 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.