Bootstrap 的 d-none d-md-block 在 Vue 里为啥不生效? Designer°诗语 提问于 2026-03-10 18:03:17 阅读 42 组件 我在 Vue 组件里用 Bootstrap 的响应式显示类,比如 d-none 和 d-md-block,想在小屏隐藏某个元素,但实际在手机上还是显示出来了,完全没反应。是我用法不对吗? 我已经确认引入了 Bootstrap 的 CSS,其他样式比如 btn、container 都正常。下面是我的代码: <template> <div class="d-none d-md-block"> 这段文字应该在 md 及以上屏幕才显示 </div> </template> UI框架响应式工具 我来解答 赞 5 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 UP主~瑞腾 Lv1 这个问题其实挺常见的,我来帮你排查一下。 最可能的原因是:Bootstrap 版本太老或者引入的版本没有响应式显示类。d-none、d-md-block 这些是 Bootstrap 4.1+ 才有的,Bootstrap 3 根本没有这些类。你可以检查一下引入的 Bootstrap 版本号。 如果版本没问题,那基本就是被其他 CSS 覆盖了。你可以打开浏览器开发者工具,定位到这个元素,看 computed 面板里的 display 属性实际是什么值,以及是哪个 CSS 规则覆盖的。 还有一种情况:Vue 组件的 scoped 样式意外影响。虽然 scoped 通常不会影响 class ,但如果你的组件根元素上绑定了动态样式或者有其他奇怪的写法,可能会冲突。 解决办法很简单,先用浏览器工具定位具体是哪个规则覆盖了 display,然后针对性地用更高优先级的选择器覆盖回来,或者直接在元素上写内联样式: <div style="display: none;" class="d-md-block"> 这段文字应该在 md 及以上屏幕才显示 </div> 先看看版本号和 computed 样式吧,十有八九是版本问题或者被覆盖了。 回复 点赞 1 2026-03-10 19:00 加载更多 相关推荐 2 回答 50 浏览 WebAssembly 启用 SIMD 后在 Vue 项目中报错怎么办? 我在 Vue 项目里尝试用 WebAssembly 的 SIMD 指令加速图像处理,本地开发能跑,但一构建上线就报 "SIMD is not supported"。明明浏览器支持 SIMD 啊,是不是... W″利利 前端 2026-03-12 17:55:22 2 回答 81 浏览 Bootstrap警告框在Vue中动态隐藏后样式残留怎么办? 我在用Vue和Bootstrap做表单验证时,给错误提示用了alert-danger组件。通过v-if控制显示隐藏,但隐藏后背景色偶尔会残留白色边框,这是怎么回事啊? 代码是这样的: <temp... 端木春莉 组件 2026-02-14 13:07:27 1 回答 36 浏览 Bootstrap栅格系统在小屏幕上布局错乱怎么办? 我用Bootstrap 5写了个两栏布局,大屏显示正常,但一到手机上就重叠了。明明用了col-md-8和col-md-4,按理说小屏应该自动堆叠才对啊? 试过加col-12前缀也不行,控制台也没报错,... 宇文子香 组件 2026-03-30 17:37:13 2 回答 54 浏览 Bootstrap栅格两列高度不一致怎么解决? 用Bootstrap的栅格系统做布局时,左边col-md-3固定宽度,右边col-md-9放动态内容。如果右边内容多,左边列的高度就只到自己内容结束,看起来特别丑,试过给父容器加height:100%... 一秀云 组件 2026-02-11 04:13:24 2 回答 68 浏览 Avue表单动态更新后视图不刷新怎么办? 用Avue的avue-crud组件做表格编辑时,通过API获取到新数据赋值给formData,页面就是不更新。折腾了半天没反应... 代码是这样写的: this.form = {}; // 初始化空对... UP主~爱敏 框架 2026-01-26 10:54:25 1 回答 34 浏览 UIkit网格在Vue里不生效是怎么回事? 我在Vue项目里引入了UIkit,想用它的Grid布局,但写完发现列没按预期排列,全都堆在一起了。是不是哪里漏了? 我已经在main.js里import 'uikit/dist/css/uikit.m... 子儒 组件 2026-03-29 14:17:16 1 回答 26 浏览 Vue中如何统一处理Ajax请求的错误响应? 我在用Vue做项目,想通过拦截器统一处理接口返回的错误(比如token过期),但不知道为啥拦截器没生效,求指点! 我用的是axios,已经写了响应拦截,但401错误还是直接抛到组件里了,没走拦截逻辑。... 夏侯梦玲 前端 2026-03-25 23:19:20 1 回答 41 浏览 UIkit的Toggle切换器在Vue里为啥不生效? 我在Vue组件里用UIkit的uk-toggle做切换,点击按钮没反应,控制台也没报错,是不是哪里写错了? 我已经引入了UIkit的JS和CSS,普通HTML页面能用,但放到Vue单文件组件里就不行了... シ明明 组件 2026-03-25 17:48:23 1 回答 51 浏览 为什么 smooth scroll 在 Vue 里有时候不生效? 我在 Vue 项目里用 scrollIntoView({ behavior: 'smooth' }) 实现平滑滚动,但有时候完全没效果,直接跳转。试过加 CSS 的 scroll-behavior: ... 闲人星宇 交互 2026-03-25 17:30:22 1 回答 31 浏览 Vue 路由切换时如何加过渡动画? 我在用 Vue Router 做页面切换,想加个淡入淡出的过渡效果,但试了几次都没生效。是不是我写法有问题? 我已经在 router-view 外面包了 transition,也写了对应的 CSS 类... 东方子涵 前端 2026-03-25 11:42:20
最可能的原因是:Bootstrap 版本太老或者引入的版本没有响应式显示类。d-none、d-md-block 这些是 Bootstrap 4.1+ 才有的,Bootstrap 3 根本没有这些类。你可以检查一下引入的 Bootstrap 版本号。
如果版本没问题,那基本就是被其他 CSS 覆盖了。你可以打开浏览器开发者工具,定位到这个元素,看 computed 面板里的 display 属性实际是什么值,以及是哪个 CSS 规则覆盖的。
还有一种情况:Vue 组件的 scoped 样式意外影响。虽然 scoped 通常不会影响 class ,但如果你的组件根元素上绑定了动态样式或者有其他奇怪的写法,可能会冲突。
解决办法很简单,先用浏览器工具定位具体是哪个规则覆盖了 display,然后针对性地用更高优先级的选择器覆盖回来,或者直接在元素上写内联样式:
先看看版本号和 computed 样式吧,十有八九是版本问题或者被覆盖了。