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;
  }
}

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

Ant Design中使用css切换的问题及解决的更多相关文章

  1. android – Cordova构建失败,找不到${appt}

    命令cordovabuildandroid失败,输出如下据我所知,蚂蚁无法找到aapt文件.安装了Ant:ANDROID_HOME和PATH也正确设置.我之前已经让cordova在这个系统上工作,现在它只是拒绝.cordova应该在项目目录中寻找appt吗?它不应该在ANDROID_HOME/build_tools上查找吗?如果需要,还需要进一步详细说明:项目是从github克隆的,所以它可能在某

  2. android – 如何让Eclipse / ADT尊重我添加到build.xml的nocompress标签?

    谢谢!

  3. 针对Android的Ant与Eclipse构建:每个的优势?

    我已经将Eclipse和vim用作Android应用程序的开发环境,并发现Eclipse插件和命令行SDK工具具有相似的功能.但是,由于我没有完全探讨过,我想问:使用Eclipse而不是命令行工具有什么优势,反之亦然?

  4. Ant Design Vue 修改表格头部样式的详细代码

    这篇文章主要介绍了Ant Design Vue 修改表格头部样式,首先用到的是customHeaderRow这个API,类型是一个函数,本文通过完整代码给大家详细讲解,需要的朋友可以参考下

  5. ant design vue的table取消自带分页问题

    这篇文章主要介绍了ant design vue的table取消自带分页问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  6. Ant Design Vue 走马灯实现单页多张图片轮播效果

    这篇文章主要介绍了Ant Design Vue 走马灯实现单页多张图片轮播,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  7. Ant Design-vue 解决input前后空格问题(推荐)

    最近做项目遇到这样一个问题输入框不允许有前后空格但字符中间可以有空格,怎么解决这个问题呢,接下来小编把ant Design-vue 解决input前后空格问题的实现代码分享给大家,感兴趣的朋友一起看看吧

  8. 解决Android Studio XML编辑界面不显示下面的Text和Design选项卡

    这篇文章主要介绍了解决Android Studio XML编辑界面不显示下面的Text和Design选项卡,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  9. React Ant Design树形表格的复杂增删改操作

    这篇文章主要介绍了React Ant Design树形表格的复杂增删改操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  10. react脚手架如何配置less和ant按需加载的方法步骤

    这篇文章主要介绍了react脚手架如何配置less和ant按需加载的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部