naive ui和tailwind-css冲突解决方法

tailwindcss侧的解决方法(推荐)

修改tailwind.config.js文件,禁用预加载

module.exports = {
  // 禁用预加载,修复tailwind样式 与 naive-ui button等样式等冲突问题
  corePlugins:{
   preflight: false
  },
  purge: [    "./index.html",
    "./src/**/**/*.{vue,js,ts,jsx,tsx}",],
  darkMode: false, // or 'media' or 'class'
  theme: {
    extend: {},
  },
  variants: {
    extend: {},
  },
  plugins: [],
}

tailwind预加载,是为了保持一个新项目的风格统一,会把原本html自带的一些标签,如h1-h5, img,ul,padding等样式的默认风格和作用给移除掉,当然这对已有的项目集成tailwindcss是不友好的,所以可以禁用掉,详情可参考tailwind的官方介绍:Preflight - Tailwind CSS

naive-ui侧的解决方法(不推荐)

将src/main.ts改成下面这样,原理是让naive-ui-style在 app 挂载之前动态的插入 meta 标签,防止TailwindCSS造成样式覆盖:

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
 
async function bootstrap() {
    const app = createApp(App)
    const meta = document.createElement('meta')
    meta.name = 'naive-ui-style'
    document.head.appendChild(meta)
    app.mount('#app')
}
 
bootstrap()

这种方式经测试, 按钮样式可以恢复,但部分字体的样式却仍然失效,比如:

 <h2 style="text-align: center">大数据平台</h2>

参考文档:

NaiveUI和TailwindCSS的样式冲突问题解决 | hash070's blog

naiveui和tailwin样式冲突导致n-button背景成透明问题解决方法_tailwind背景色透明怎么设置_Bear2IT的博客-CSDN博客

Naive UI

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 Vue 3 的表单验证功能来验证 Naive UI 的 NInput 组件。以下是一个例子: 首先,您需要在组件中使用 `v-model` 绑定数据。例如: ```html <template> <n-input v-model="name" placeholder="请输入姓名"></n-input> </template> <script> export default { data() { return { name: '' } } } </script> ``` 然后,您可以使用 Vue 3 的表单验证功能来验证该字段。例如: ```html <template> <n-input v-model="name" placeholder="请输入姓名" :rules="nameRules"></n-input> </template> <script> export default { data() { return { name: '', nameRules: [ { required: true, message: '请输入姓名', trigger: 'blur' }, { min: 2, max: 10, message: '长度在 2 到 10 个字符', trigger: 'blur' } ] } } } </script> ``` 在上面的代码中,我们为 `name` 字段添加了两个验证规则,一个是必填的,一个是长度在 2 到 10 个字符之间。具体的验证规则可以根据您的需求进行修改。 最后,您需要在表单提交时调用 `validate` 方法来验证表单。例如: ```html <template> <n-form ref="form" :model="form" :rules="rules"> <n-input v-model="form.name" placeholder="请输入姓名" :rules="nameRules"></n-input> <!-- 其他表单项 --> <n-button type="primary" @click="submit">提交</n-button> </n-form> </template> <script> export default { data() { return { form: { name: '', // 其他表单项 }, rules: { name: [ { required: true, message: '请输入姓名', trigger: 'blur' }, { min: 2, max: 10, message: '长度在 2 到 10 个字符', trigger: 'blur' } ], // 其他表单项的验证规则 } } }, methods: { submit() { this.$refs.form.validate(valid => { if (valid) { // 表单验证通过,可以提交表单 } else { // 表单验证失败,提示用户 } }) } } } </script> ``` 在上面的代码中,我们使用了 Naive UI 的 NForm 和 NButton 组件,通过调用 `validate` 方法来验证表单。具体的表单验证规则可以参考 Vue 3 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值