Ant Design中使用css切换的问题及解决

 更新时间:2022年09月19日 11:45:12   作者:Moo_Trevor  
这篇文章主要介绍了Ant Design中使用css切换的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Ant Design使用css切换问题

当想通过开关来控制主题颜色时,就必须控制css的变化,现就记录使用Ant Design切换主题过程中发现的一些问题。

切换主题的方法:

1、绑定一个自定义属性

通过绑定一个自定义属性,一键改变html的整体样式。但缺点也很明显,他仅适用于原生的样式(css全部由自己定义),不适合在UI框架中使用;

function addSkin(checked) {
  const html = document.getElementsByTagName('html')[0];
  html.dataset.theme = checked ? 'dark' : 'light';
  html.className = checked ? 'dark' : '';
}

2、css模块化

配置webpack的css模块化,通过import方式导入css,再通过xxx.style的方式来设置css。缺点是,className的命名不允许出现横杠(-)的命名方式,限制比较大,不利于后期维护。

      {
        test:/\.css$/,
        use: [{ loader: MiniCssExtractPlugin.loader,},
          { loader: "css-loader", options: { modules:true }},
          { loader: "postcss-loader"}
        ]
      },

3、Ant Design主题方案

Ant Design框架自带的主题方案 定制主题 - Ant Design ,缺点,不适合主题切换

 ConfigProvider.config({
    theme: {
      bodyBackground: 'rgb(20,20,20)',
      primaryColor: '#25b864', // 全局主色
    },
  });

4、css in js 

使用styled-components库 

import styled from 'styled-components'
 
const Title = styled.h1`
    font-size: 1.5em;
    text-align: center;
    color: palevioletred;
`;
// 相当于  const Title = styled.h1(xx)
const Wrapper = styled.section`
    padding: 4em;
    background: papayawhip;
`;
    render () {
        return (
            <Wrapper>
                <Title>Hello styled-components</Title>
            </Wrapper>
        )
    }

ant design中css样式覆盖问题

在ant design中想要覆盖原生组件的样式,因为CSS modules 的使用会使得class的名字被重新编译而没有效果;对此我们可以使用全局css来达到目的。写法如下: 

.override-ant-btn {
  :global(.ant-btn) {
    border-radius: 16px;
  }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • React事件处理超详细介绍

    React事件处理超详细介绍

    这篇文章主要介绍了React事件处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-09-09
  • React useState超详细讲解用法

    React useState超详细讲解用法

    我正在处理的组件是表单的时间输入。表单相对复杂,并且是动态生成的,根据嵌套在其他数据中的数据显示不同的字段。我正在用useReducer管理表单的状态,到目前为止效果很好
    2022-11-11
  • React实现反向代理和修改打包后的目录

    React实现反向代理和修改打包后的目录

    这篇文章主要介绍了React实现反向代理和修改打包后的目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • React 中使用 Redux 的 4 种写法小结

    React 中使用 Redux 的 4 种写法小结

    这篇文章主要介绍了在 React 中使用 Redux 的 4 种写法,Redux 一般来说并不是必须的,只有在项目比较复杂的时候,比如多个分散在不同地方的组件使用同一个状态,本文就React使用 Redux的相关知识给大家介绍的非常详细,需要的朋友参考下吧
    2022-06-06
  • react中监听props的改变方式

    react中监听props的改变方式

    这篇文章主要介绍了react中监听props的改变方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • react native 文字轮播的实现示例

    react native 文字轮播的实现示例

    这篇文章主要介绍了react native 文字轮播的实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 深入探讨前端框架react

    深入探讨前端框架react

    本文带领大家一起探讨前端框架react,涉及到前端框架react相关知识,对前端框架react相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • React echarts 组件的封装使用案例

    React echarts 组件的封装使用案例

    这篇文章主要介绍了React echarts 组件的封装,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • React18从0实现dispatch update流程

    React18从0实现dispatch update流程

    这篇文章主要为大家介绍了React18从0实现dispatch update流程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • React Hooks之useRef获取元素示例详解

    React Hooks之useRef获取元素示例详解

    这篇文章主要介绍了React Hooks之useRef获取元素示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07

最新评论