首页 > 其他分享 >tailwindcss 默认的button按钮样式导致其他ui库,如antd、element等透明失效问题的终极探讨

tailwindcss 默认的button按钮样式导致其他ui库,如antd、element等透明失效问题的终极探讨

时间:2024-03-26 15:24:38浏览次数:30  
标签:样式 where button postcss element ui tailwindcss type

我先说一下好消息,这个问题在官方层面已经准备解决了,并且在当前版本(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

相关文章

  • React-hook-form-mui(一):基本使用
    前言在项目开发中,我们选择了React+MUI作为技术栈。在使用MUI构建form表单时,我们发现并没有与antd类似的表单验证功能,于是我们选择了MUI推荐使用的react-hook-form-mui库去进行验证。但是发现网上关于这个库的使用方法和demo比较少且比较简单,并没有复杂的表单验证的demo。......
  • Salesforce宣布将停用Workflow Rules和Process Builder!
    在近期的公告中,Salesforce透露在2025年12月31日之后将不再支持WorkflowRules和ProcessBuilder。Salesforce敦促用户在截止日期前将其自动化流程迁移到FlowBuilder,以确保不间断的支持和漏洞修复。此举正值Salesforce将重点转向更现代、可扩展、低代码的自动化解决方案FlowBui......
  • .NET Emit 入门教程:第五部分:动态生成方法(MethodBuilder 与 DynamicMethod)
    前言:当我们涉及到在运行时生成和定义方法时,便需要使用到C#中的两个关键类之一:MethodBuilder 或 DynamicMethod。这两者都属于反射(Reflection.Emit)的一部分,允许我们以动态的方式创建方法。两者各有侧重,使用方式大体相同,本篇文章我们先介绍MethodBuilder,再介绍DynamicMethod,......
  • 鸿蒙HarmonyOS实战-ArkUI组件(GridRow/GridCol)
    ......
  • element table 单选按钮
    Elementel-table实现单选操作 https://juejin.cn/post/6844904073498460174 https://juejin.cn/post/7021803438392475662 可以用{{``}}代替 用 或者‘’代替lable的话,el-radio__label会占用空间,导致radio不居中。如果有这个需求,可以给el-radio__labeldispla......
  • element 文本域设置 隐藏边框,禁止缩放,自动换行...
    1.隐藏边框:deep(.el-textarea__inner){box-shadow:0000px;}:deep(.el-textarea__inner:hover){box-shadow:0000px;}:deep(.el-textarea__inner:focus){box-shadow:0000px;} 2.禁止缩放resize="none"3.自动换行 autosizeminRows:5......
  • Building an Automatically Scaling Web Application
    2024年春季云计算课业1:构建一个自动伸缩的Web应用程序截止日期:2024年4月15日,星期一1目标和范围在这项任务中,我们将为(非常)琐碎的Web构建一个小型的自动伸缩测试平台应用任务的目标是熟悉伸缩Web的各个方面应用程序,这将提高您对低级/基本实现的理解云系统的详细信息。正如我们在......
  • HFCG-3500+ 信号调节 LTCC High Pass Filter 3900-16500MHz 0805 陶瓷滤波器 Mini-Cir
    Mini-Circuits是一家专注于射频和微波产品的跨国公司,总部位于美国纽约。Mini-Circuits提供的产品涵盖了信号调理、信号发生、频率合成、混合信号处理等领域,广泛应用于无线通信、雷达、测试测量、航空航天等行业。制造商:   Mini-Circuits   产品种类:   信号调......
  • hbuilderx打包苹果证书获取步骤
    简介:目前app开发,很多企业都用H5框架来开发,而uniapp又是这些h5框架里面最成熟的,因此hbuilderx就成为了开发者的首选。然而,打包APP是需要证书的,那么这个证书又是如何获得呢?生成苹果证书相对复杂一些,所以这里我重点说下ios证书的生成流程目前app开发,很多企业都用H5框架来......
  • 聊一下Button事件、命令、行为的触发顺序
    1、我们新建一个xaml<StackPanelWidth="200"Margin="20"><ButtonHeight="30"Content="按钮"Command="{BindingMsgCommand}"x:Name="btn"Margin="10"/></StackPanel>2、分别在后台......