antd样式修改如何避免被全局覆盖

antd样式修改如何避免被全局覆盖

一般的antd组件只需要在外层套一个div,引入的时候用

import styles from './ChoiceContents.less';

然后元素的classname用:

<div  className={styles.choiceContentsParent}>
<Swiper>
</Swiper>
</div>

这样的形式就可以了
在less样式文件中,antd组件要写在global里,然后global外面再套一个外层div的classname就行了 PS:要用global需要把样式文件从.css改成.less
e.g:

.choiceContentsParent {
  position: relative;
  text-align: center;
  height: 1080rem;
  width: 1920rem;
  background: #ffffff;
  :global{
    .swiper-slide{
      width: auto!important;
    }
  }
}

还有一些特殊的组件,比如弹出框、气泡确认框、下拉框这些比较特殊的组件,因为实现原理是将dom插到body下,所以我们不能直接在外层dom添加classname,但实际上antd提供了修改的方法,比如dropdown下拉框是 overlayClassName,弹出框是wrapClassName,具体可以去antd官网提供的组件API来查找
请添加图片描述

这样我们在这些特殊组件外套一个div,然后在组件的标签内设置外层div的类名,按之前方法来在less里添加样式就行了
e.g:

 <div>
  <Modal
    wrapClassName={styles.navmodal}
    visible={visible}
    centered={true}
    footer={null}
    closeIcon
  >
  <div></div>
  </Modal>
  </div>
.navmodal{
  :global{
    .ant-modal-content{
      width: 500px!important;
      height: 406px!important;
      border-radius: 8px!important;
      box-shadow: 0px 2px 1px rgba(0, 0, 0, 0.1), -5px -10px 20px rgba(255, 255, 255, 0.3), 5px 10px 20px rgba(0, 0, 0, 0.1)!important;
    }
    .ant-modal-mask{
      background: rgba(0, 0, 0, 0.5)!important;
      /*   backdrop-filter: blur(2px)!important;*/
    }
  }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果需要修改 Antd 滚动条的样式,可以通过以下几种方式实现: 1. 使用 CSS 样式覆盖原有样式 Antd 滚动条的样式可以通过 CSS 样式覆盖,具体可以通过以下代码实现: ```css ::-webkit-scrollbar { width: 10px; height: 10px; background-color: #f5f5f5; } ::-webkit-scrollbar-thumb { background-color: #c1c1c1; border-radius: 5px; } .ant-table-body::-webkit-scrollbar-thumb { background-color: #1890ff; } ``` 2. 使用自定义主题配置 Antd 通过提供主题定制功能,可以方便地修改滚动条样式。具体可以通过以下代码实现: ```javascript // 在 less 文件中定义主题变量 @scrollbar-width: 10px; @scrollbar-color: #c1c1c1; @scrollbar-track-color: #f5f5f5; @scrollbar-thumb-hover-color: #1890ff; // 在 webpack 配置文件中引入主题文件 const { getThemeVariables } = require('antd/dist/theme'); const themeVariables = getThemeVariables({ dark: true }); const lessToJs = require('less-vars-to-js'); const fs = require('fs'); const path = require('path'); const themeVariablesContent = fs.readFileSync(path.join(__dirname, './theme.less'), 'utf8'); const themeVariablesJson = lessToJs(themeVariablesContent); module.exports = { // ... module: { // ... }, plugins: [ // ... ], resolve: { // ... }, // 在 antd 主题变量基础上添加自定义主题变量 lessLoader: { lessOptions: { modifyVars: { ...themeVariables, ...themeVariablesJson, }, javascriptEnabled: true, }, }, }; ``` 然后在需要修改滚动条的组件中,设置 `scrollbar={{}}` 属性,具体可以通过以下代码实现: ```javascript import { Table } from 'antd'; const dataSource = [ // ... ]; const columns = [ // ... ]; const App = () => { return ( <Table dataSource={dataSource} columns={columns} scrollbar={{ width: '@scrollbar-width', height: '@scrollbar-width', backgroundColor: '@scrollbar-track-color', thumbColor: '@scrollbar-color', thumbHoverColor: '@scrollbar-thumb-hover-color', }} /> ); }; export default App; ``` 3. 使用第三方插件 除了上述两种方式,还可以使用第三方插件来修改滚动条样式,如 `react-custom-scrollbars`。具体可以通过以下代码实现: ```javascript import { Table } from 'antd'; import { Scrollbars } from 'react-custom-scrollbars'; const dataSource = [ // ... ]; const columns = [ // ... ]; const App = () => { return ( <Scrollbars style={{ height: 200 }} renderThumbVertical={({ style, ...props }) => ( <div {...props} style={{ ...style, width: 10, borderRadius: 5, backgroundColor: '#c1c1c1', }} /> )} > <Table dataSource={dataSource} columns={columns} /> </Scrollbars> ); }; export default App; ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Catalike、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值