使用CSS隐藏某些内容而不显示:none或JavaScript

rbl*_*nch 14 html css mobile blackberry

如何在不使用display:none或JavaScript的情况下隐藏div ?

在我的国家,许多Blackberrys都禁用了CSS支持(这里的移​​动公司对开发人员来说并不是那么好).我有文字说

<div class="BBwarn">
please activate your css support and a link
</div>
Run Code Online (Sandbox Code Playgroud)

我想隐藏一旦用户激活CSS支持,但我无法使用,display:none;因为它仅在BB固件4.6中受支持.这是一个公共站点,我不能让所有访问者升级.

有人知道这个解决方案吗?我希望这个问题现在更容易理解.

更新:谢谢大家的答案,但我无法使用

  • 位置:绝对
  • 溢出

因为它们可以从Blackberry固件4.6及更高版本获得

kru*_*.ar 12

这是一种常见的方式:

margin-left: -9999;

  • 在这种情况下,替换div中的文本:<div class ="BBwarn">请升级你的设备,如果你想要它消失</ div>并使其大胆红色和闪烁(如果可行):D (2认同)

mfx*_*mfx 8

要尝试的事情:

  • 使用z-index将其置于其他元素后面
  • 通过绝对定位将其移出屏幕
  • 可见性:隐藏
  • 通过将背景设置为前景色(仅适用于文本)使内容"不可见"
  • 不透明度:0

但真正的问题是:为什么?


Pim*_*ger 7

怎么样:

  visibility: hidden;
Run Code Online (Sandbox Code Playgroud)

这应该隐藏DIV,(注意它仍然会被渲染但是不可见,这意味着它会占用文档中的空间,就好像它是可见的,但是不可见(不像display:none; div不会被渲染) ).


Dan*_*fer 6

<div style="height:0;width:0;overflow:hidden;">
<!-- content here -->
</div>
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这是我要做的预加载图像,这很好,因为它不使用javascript。

可见性:隐藏不会做同样的事情,因为某些浏览器很聪明,除非提出要求,否则它不会发出请求。

  • 我不明白为什么这比使用javascript更好?如果没有JS的人来到您的网站,他们将下载一堆他们从未见过的图像(假设这些图像用于翻转,灯箱等) (2认同)

Ste*_*rks 6

我不确定你所说的使用 < 4.6 的百分比,但如果它对你那么重要,那么我可以看到接受你不能一直取悦所有人的理由,以及应该可以实现可接受的级联解决方案。可能有一个链接来解释升级和启用 css 的好处。

height: 0; 
overflow: hidden;
visibility: hidden; 
color: #fff; 
background: #fff; 
Run Code Online (Sandbox Code Playgroud)

顺便说一句 - 如果你告诉别人打开它,你最好确保你的 css 是好的...... :-)


Joh*_*hn_ 5

为什么不尝试简单的方法:

position: absolute;
left: -1000px;
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它不起作用。


mer*_*tor 5

display: none4.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;
}
Run Code Online (Sandbox Code Playgroud)

但随后widthheight仅支持从4.3版本开始的所有元素.在此之前,他们只能被应用到<button><img>标签和一些<input>类型(根据文档).

因此,真正使其适用于所有BlackBerry固件版本的最安全方法是使用图像作为警告,并使用CSS将其宽度和高度设置为零.

如果图像不是一个选项(由于lozalization问题左右,或许),丑陋的黑客可能是指定一个空/非法图像源并将警告文本放在alt属性中.我不知道如果将其宽度和高度设置为零仍会隐藏该替代文本.


Tom*_*ter 2

您可以将其绝对放置在屏幕之外。

但我也不是移动开发者。