我先说一下好消息,这个问题在官方层面已经准备解决了,并且在当前版本(3.4.1)的下一个正式版彻底解决。
这里是原文:https://github.com/tailwindlabs/tailwindcss/pull/12735
但截至目前24.3.26日,仍然没发布新版。
官方的解决办法也很简单,就是降低优先级
原来的:
button, [type='button'], [type='reset'], [type='submit'] { -webkit-appearance: button; /* 1 */ background-color: transparent; /* 2 */ background-image: none; /* 2 */ }
改成了:
button, input:where([type='button']), input:where([type='reset']), input:where([type='submit']) { -webkit-appearance: button; /* 1 */ background-color: transparent; /* 2 */ background-image: none; /* 2 */ }
--------------------
言归正传。
这个问题网上流传了很多歌解决办法,比如
直接覆盖样式。
关闭prefight preflight: false
不引用 @tailwind base;
这些个办法虽然操作简单,但总是不完美,去掉了基础样式,会导致一些样式的缺失。覆盖样式,也会导致二次定义颜色。
所以,我使用了第四种方式,就是通过postcss插件处理
这是关键代码,大家自己使用的话改一下,原理就是查找样式并替换。
const plugin = (options) => { options = options || {} return { postcssPlugin: "postcss-tailwind-fixes", Once: (root) => { root.walkRules((rule) => { if (rule.selector === `button,\n[type='button'],\n[type='reset'],\n[type='submit']`) { rule.selector = `button,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit'])` } }); } } }
保存成插件给postcss引用就可以了。
nuxt用户,需要在这个插件之前,显式的引用tailwindcss插件,否则不会处理tailwindcss
postcss:{ plugins:{ tailwindcss: {}, './extends/postcss-tailwind-fixes/plugin.mjs': {}, } },
标签:样式,where,button,postcss,element,ui,tailwindcss,type From: https://www.cnblogs.com/alpiny/p/18096722