如何在不使用display:none
或JavaScript的情况下隐藏div ?
在我的国家,许多Blackberrys都禁用了CSS支持(这里的移动公司对开发人员来说并不是那么好).我有文字说
please activate your css support and a link
我想隐藏一旦用户激活CSS支持,但我无法使用,display:none;
因为它仅在BB固件4.6中受支持.这是一个公共站点,我不能让所有访问者升级.
有人知道这个解决方案吗?我希望这个问题现在更容易理解.
更新:谢谢大家的答案,但我无法使用
位置:绝对
溢出
因为它们可以从Blackberry固件4.6及更高版本获得
这是一种常见的方式:
margin-left: -9999;
要尝试的事情:
使用z-index将其置于其他元素后面
通过绝对定位将其移出屏幕
可见性:隐藏
通过将背景设置为前景色(仅适用于文本)使内容"不可见"
不透明度:0
但真正的问题是:为什么?
怎么样:
visibility: hidden;
这应该隐藏DIV,(注意它仍然会被渲染但是不可见,这意味着它会占用文档中的空间,就好像它是可见的,但是不可见(不像display:none; div不会被渲染) ).
顺便说一句,这是我要做的预加载图像,这很好,因为它不使用javascript。
可见性:隐藏不会做同样的事情,因为某些浏览器很聪明,除非提出要求,否则它不会发出请求。
为什么不尝试简单的方法:
position: absolute; left: -1000px;
我不明白为什么它不起作用。
display: none
4.6之前版本不支持您的想法?你测试过那个,或者你是按照他们的文档进行测试的?
我也不是移动开发人员,所以我只是按照我从文档中收集到的内容.
在BlackBerry浏览器4.6 CSS参考确实提到了"可用性:BlackBerry®设备软件版本4.6或更高版本"的显示属性,但他们的BlackBerry浏览器4.3内容开发者指南表明,4.3已经支持非常有限版本的display
财产,包括display: none
.4.3之前的版本不支持该display
属性(再次,通过BlackBerry Browser开发人员文档).
您是否可以假设您的用户至少拥有固件版本4.3,或者假设他们拥有4.6,这是不可接受的?
您是否尝试过将宽度和高度设置为零?我不熟悉BlackBerry(浏览器),但我怀疑它的CSS支持并不完美,当然在旧版本上.如果这有效,我不会感到惊讶:
.BBwarn { display: none; /* for 4.6 and up */ width: 0px; /* for 4.3 */ height: 0px; }
但随后width
与height
仅支持从4.3版本开始的所有元素.在此之前,他们只能被应用到和
标签和一些
类型(根据文档).
因此,真正使其适用于所有BlackBerry固件版本的最安全方法是使用图像作为警告,并使用CSS将其宽度和高度设置为零.
如果图像不是一个选项(由于lozalization问题左右,或许),丑陋的黑客可能是指定一个空/非法图像源并将警告文本放在alt
属性中.我不知道如果将其宽度和高度设置为零仍会隐藏该替代文本.