vue.js 可以同时使用Tailwind CSS和Bootstrap 4吗?

xghobddn  于 2022-11-17  发布在  Vue.js
关注(0)|答案(5)|浏览(243)

我的项目目前是Vuejs,它使用BootstrapVue组件(似乎使用bootstrap 4 css)。
我正在尝试使用Tailwind css创建新的自定义组件。
有没有可能同时使用这两种方法?

  • 谢谢-谢谢
bejyjqdl

bejyjqdl1#

可以使用前缀解决类冲突

// tailwind.config.js
module.exports = {
  prefix: 'tw-',
}

但是,您很可能会遇到normalize.css的问题,它在@tailwind base中使用

wgeznvg7

wgeznvg72#

可能:是否建议:
有很多类会互相矛盾。
.容器(引导)
.容器(顺风)
.clearfix (B)
.clearfix (T)
还有很多......
我的建议是要么坚持使用BootstrapVue,要么使用顺风。我个人的偏好是顺风。

h5qlskok

h5qlskok3#

选项1:采用或重新创建类

如果你只需要一个或两个类,例如从color system of Tailwind,你也可以复制它们。一些字符必须被屏蔽,例如:
//样式. css

.hover\:text-blue-900:hover,
.text-blue-900 {
  color: #183f6d;
}
  • 这是我在项目开始时所做的,其中引导程序是主要的 * 框架 如果它应该是几种颜色和函数,您也可以使用SCSS快速构建它。然而,从长远来看,在我看来,这不是最好和最干净的解决方案。

示例:
//样式.scss

(...)
@each $name, $hexcode in $tailwind-colors {
    .hover\:text-#{$name}:hover,
        .text-#{$name} {
            color: $hexcode
        }
    }
}

Full code (Github Gist)

选项2:集成顺风

但是,一旦需要添加更多功能,或者您希望构建得更干净,您可以在这里使用文档中提到的前缀,如Ostap Brehin所述。
//tailwind.config.js的配置文件

module.exports = {
  prefix: 'tw-',
}

可通过禁用预检来删除规范化定义:
//tailwind.config.js的配置文件

module.exports = {
  corePlugins: {
    preflight: false,
  }
}
  • 最好检查生成的CSS文件。*

下面是我的完整tailwind.config.js文件:
//tailwind.config.js的配置文件

module.exports = {
    content: [
        './**/*.php',
        '../Resources/**/*.{html,js}',
    ],
    safelist: [
        'tw-bg-blue-800/75',
        {
            pattern: /(bg|text)-(blue)-(800)/,
            variants: ['hover'],
        },
    ],
    prefix: 'tw-',
    theme: {
        extend: {},
    },
    corePlugins: {
        preflight: false,
    },
    plugins: [],
}
yqhsw0fo

yqhsw0fo4#

只要在两个库中没有名称冲突(我不认为它们是),它们就会工作得很好。
但我认为你不应该这样做,因为这会破坏项目的统一性,使它更难维护。

xqnpmsa8

xqnpmsa85#

是的,您可以同时使用Tailwind和Bootstrap。
然而,你需要对你的tailwind做一些配置。第一件事是添加一个前缀,然后关闭预检。如果你没有使用Tailwind JIT,那么也要使important为true。如果你正在使用Tailwind JIT,那么你可以在类前使用“!”使其重要。例如“!tw-block”。
以下是适用于Tailwind JIT/CDN的配置:

<script>
    tailwind.config = {
      prefix: "tw-",
      corePlugins: {
         preflight: false,
      }
    }
  </script>

如果不使用CDN,请使用以下配置:

module.exports = {
    content: ["./**/*.html"],
    prefix: "tw-",
    important: true,
    corePlugins: {
        preflight: false,
    }
}

我已经写了一个完整的博客:https://developerwings.com/tailwind-and-bootstrap-together/

相关问题