从 Vue.js 中的某些路由中排除 Bootstrap 样式

Posted

技术标签:

【中文标题】从 Vue.js 中的某些路由中排除 Bootstrap 样式【英文标题】:Exclude Bootstrap styling from certain routes in Vue.js 【发布时间】:2021-01-03 07:58:07 【问题描述】:

我有一个使用 cli-tool 制作的单页 vue 2 应用程序。我的大部分路线都使用 Bootswatch (Bootstrap) 样式。但根本不应该。这只是一个问题,因为 Bootstrap 会影响 bodyhtml 样式,并且通常会与其他样式混淆。即使我@import scoped <style> 中的 Bootstrap 只对应该使用它的路由,路由也不应该使用 Bootstrap。如果我首先访问 Bootsrap 路线,然后再访问孤立的路线,就会发生这种情况。我应该怎么做才能让我的一条路线在造型方面完全隔离?如果这不可能或非常不切实际,请提出其他方法。如果这不是单页应用程序,这将很容易。但我更喜欢它是一个。

【问题讨论】:

【参考方案1】:

我成功地将引导导入封装在一个名为“bootstrap-inside”的类中,并将其分配给应该使用 Bootstrap 设置样式的#app(例如索引路由)div。

   .bootstrap-inside 
      @import '~bootstrap/scss/bootstrap.scss';
   

从现在开始,如果你想使用 bootstrap,你只需要在你的组件/视图/布局中使用 .bootstrap-inside。

我建议为您的无引导页面创建一个视图布局,并设置您的路线以扩展该布局(如果您愿意,我也可以为您提供解决方案)。

我可以提到另一个线程的answer,关于限制引导样式的范围,以防您遇到意外的引导行为。

【讨论】:

【参考方案2】:

我知道的最简单的解决方案是手动重置给定选择器的每个 css 属性。

您可以将 id / class 添加到页面的根元素,并显式重置其所有子元素的所有 css 属性。它会覆盖默认的引导样式,但不会替换它的类。

这是一个可以重置所有 css 属性的类:reset css for a div #15901030

虽然不太方便,但应该可以!

【讨论】:

以上是关于从 Vue.js 中的某些路由中排除 Bootstrap 样式的主要内容,如果未能解决你的问题,请参考以下文章

如何从 UseStatusCodePagesWithReExecute 中排除某些路由?

如何从构建中排除 vuetify 和 vue?

如何通过使用 Vue.js 中的路由器概念单击按钮来简单地从一个组件(主页)导航到另一个组件

如何将数据传递给 Vue.js 中的路由器视图

如何将 vue.js 值作为参数传递给刀片中的路由

如何从vue js中的url中删除hasbang