You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap 4是否有反向sr-only类?文本浏览器适配问题咨询

解决Bootstrap 4中仅在GUI浏览器显示内容的需求

嘿,这个问题问得很到位!Bootstrap 4 本身并没有原生提供那种「反向 sr-only」的类——也就是专门让内容只在 GUI 浏览器显示、文本浏览器(比如 Lynx)自动隐藏的类。不过别担心,我们有两种简单的方法可以实现你的需求:

方案一:自定义专属CSS类

你可以自己写一个极简的CSS类,核心思路是:让支持CSS的GUI浏览器显示内容,不支持CSS的文本浏览器自动隐藏(同时提供友好的替代内容)。

首先添加自定义CSS:

/* 仅在支持CSS的GUI浏览器中显示 */
.gui-only {
  display: block !important;
}

然后把OSM的iframe放在这个类的容器里,同时用<noscript>标签给文本浏览器提供替代内容:

<div class="gui-only">
  <iframe src="你的OSM嵌入链接" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
</div>
<noscript>
  <p>你可以访问 <a href="你的OSM地图页面链接">这里查看地图</a></p>
</noscript>

这样一来,Firefox这类GUI浏览器会正常显示嵌入的地图,而Lynx这类文本浏览器会跳过iframe,直接显示<noscript>里的链接,完美避免长URL和错误信息的问题。

方案二:结合Bootstrap原生类与媒体查询

如果你想尽量复用Bootstrap的现有类,可以结合它的.d-none类(默认隐藏元素),再用媒体查询针对屏幕环境显示内容:

添加自定义CSS:

/* 仅在屏幕环境(GUI浏览器)下覆盖.d-none,显示元素 */
@media screen {
  .gui-only {
    display: block !important;
  }
}

然后给iframe容器添加类:

<div class="d-none gui-only">
  <iframe src="你的OSM嵌入链接" ...></iframe>
</div>
<noscript>
  <p>你可以访问 <a href="你的OSM地图页面链接">这里查看地图</a></p>
</noscript>

原理和方案一类似:.d-none让元素默认隐藏,而@media screen会在GUI浏览器(识别屏幕媒体类型)中触发,把元素重新显示出来;文本浏览器不支持媒体查询,会保持元素隐藏状态。


内容的提问来源于stack exchange,提问作者Özcan Oğuz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:48:57