Bootstrap中.d-none类在不同分辨率下的高级用法

阿强大大_4641

阿强大大_4641

2026-03-29

895人浏览

原创

.d-none 单独使用会在所有尺寸下隐藏元素,因其含 !important 会覆盖无 !important 的响应式显示类;正确做法是避免混用,改用纯响应式组合如 .d-md-block .d-lg-flex。

bootstrap中.d-none类在不同分辨率下的高级用法

为什么 .d-none 在某些断点下不生效?

Bootstrap 的 .d-none 是个“全屏隐藏”兜底类,但它本身不带响应式前缀——单独用它,会在所有尺寸下都隐藏元素。真要实现“仅在小屏隐藏、大屏显示”,必须搭配断点前缀,比如 .d-sm-block 或 .d-md-flex。

常见错误现象:div 加了 .d-none,又加 .d-lg-block,但大屏还是看不见——因为 CSS 层叠顺序里,.d-none(来自 display: none !important)优先级更高,直接覆盖了后面的响应式显示类。

  • 响应式显示类(如 .d-md-block)只在对应断点及以上生效,且不带 !important
  • .d-none 默认带 !important,所以它会压制后面没加 !important 的同类规则
  • 正确写法是:避免混用 .d-none 和带前缀的显示类,改用纯响应式组合,例如:.d-none .d-md-block → 错;.d-md-block .d-lg-flex → 对(小屏默认可见,中屏起块级,大屏起弹性)

.d-{breakpoint}-{value} 的取值逻辑和兼容性坑

.d- 系列类名的完整格式是 .d-{breakpoint}-{value},其中 {breakpoint} 是 sm/md/lg/xl/xxl,{value} 是 none/block/inline/flex/grid 等。

使用场景:需要在某个断点「切换布局模式」,比如移动端用 block 堆叠卡片,桌面端改用 flex 横向排列。

参数差异:

  • .d-sm-none:仅在 sm(≥576px)及以上隐藏
  • .d-sm-block:仅在 sm 及以上设为 block,更小尺寸保持原有 display(可能为 inline 或未定义)
  • Bootstrap 5.3+ 支持 grid 和 contents,但 IE 完全不支持,contents 在 Safari 15.4 之前也有渲染异常

性能影响极小,但过度嵌套响应式类(如同时写 .d-none .d-sm-block .d-md-flex .d-lg-grid)会让 HTML 冗长,且增加 CSS 匹配开销——实际只需覆盖目标区间即可。

如何安全地在 JS 动态控制 .d- 类的显隐?

直接用 element.classList.add('d-none') 没问题,但要注意:如果元素原本有 .d-md-block,加 .d-none 后,由于 !important,它会彻底隐藏,哪怕窗口缩放到 md 以上。

VPS Bootstrap
VPS Bootstrap

从零启动全新 VPS,完成 OpenClaw 完整部署,包括备份/恢复及恢复后验证。用于 OpenClaw 部署。

下载

容易踩的坑:

  • 不要用 classList.toggle('d-none') 单独控制,容易和响应式类冲突
  • 推荐做法:统一用响应式类控制,JS 只操作「开关类」,例如定义自定义类 .is-hidden-mobile,再配合媒体查询或 JS 切换
  • 更稳妥的是:JS 中用 setAttribute('style', 'display: none') 覆盖,但记得清理内联样式,否则会干扰响应式类

示例(安全切换):

element.classList.remove('d-none', 'd-sm-block', 'd-md-flex');
element.classList.add('d-sm-none', 'd-md-block');
这比反复增删 .d-none 更可控,也符合响应式设计本意。

自定义断点时,.d- 类不会自动继承

如果你在 Sass 中修改了 $grid-breakpoints,新增了 hd 断点,那么 .d-hd-flex 这类类名不会自动生成——Bootstrap 的 .d- 工具类只基于内置断点生成。

这意味着:

  • 即使你写了 $grid-breakpoints: (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px, hd: 2560px)
  • 也必须手动在 SCSS 中调用 @include utilities-display() 或重写 display 工具类生成逻辑
  • 否则编译后的 CSS 里根本没有 .d-hd-*,浏览器会忽略该类

这个点很容易被忽略,尤其在团队协作中——别人看到你用了 .d-hd-flex 却不生效,第一反应常是“是不是写错了”,而不是“构建流程漏了工具类生成”。

事情说清了就结束。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

bootstrap

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2523

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5443

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6470

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

6078

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

863

5

bootstrap框架介绍
bootstrap框架介绍

本专题整合了bootstrap框架相关介绍,阅读专题下面的文章了解更多详细内容。

2026.03.18

705

21

bootstrap安装教程
bootstrap安装教程

本专题整合了bootstrap安装相关教程,阅读专题下面的文章了解更多详细操作教程。

2026.03.18

199

9

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

20

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

0

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap5 入门教程
Bootstrap5 入门教程

共0课时 | 0人学习

Bootstrap Components 组件文档
Bootstrap Components 组件文档

共0课时 | 0人学习

Bootstrap Grid 栅格系统
Bootstrap Grid 栅格系统

共0课时 | 0人学习