这可能是一个愚蠢的问题,但我对在React中使用CSS/SCSS模块相对较新.

我有充分的理由这样问,因为模块允许作用域为CSS(这对于防止CSS个冲突很有用),但通常在将外部库(如Material-UIdevextreme)用于内置组件时,需要覆盖给定的CSS.

例如(为了更好地说明,我将使用devextreme):

// ...other imports
import Textbox from 'devextreme-react/text-box';

const nameLabel = {'aria-label': 'Demo'}

function App () {
    // imagine a straightforward example,
    return (
        <Textbox placeholder="Demo" inputAttr={nameLabel} />
    )
}

例如,如果我不想要填充,通常可以这样做:

.dx-texteditor.dx-editor-filled .dx-texteditor-input {
    padding: 0;
}

当然还有其他方法(比如设置id或内联样式),但如果知道它是否可行就太好了.感谢您的关照,感谢您的帮助.

推荐答案

let see how we can override built-in components css

  • 假设您在global-style es.scss文件中有一个常规的css
.yourRegularClass {
  color: blue;
}

  • 您可以使用:global Select 器来引用上面的全局类
  • 定义您的本地App.mode.css,在这里,关键字composes用于从另一个组件的模块合成样式
:global {
  .yourRegularClass {
    font-weight: bold;
  }
}


.myModuleClass {
  color: red;
  
  .dxTexteditornput {
    composes: dxTexteditornput from '~path-to/DevextremeComponent/module.scss';
   padding: 0;
  }
}


  • 通过导入本地App.module.css以上更新组件.这里CSS类dx-texteditor-input从devextreme-react被覆盖

import Textbox from 'devextreme-react/text-box';

import styles from './App.module.css';



function App () {
    // imagine a straightforward example,
    return (

      <div className={styles.myModuleClass}>This is a module class</div>

      <div className={`yourRegularClass ${styles.myModuleClass}`}>
        This uses both a global and a module class
      </div>

        <Textbox placeholder="Demo" className={styles.dxTexteditornput} />
    )
}


Reactjs相关问答推荐

阻止在ShadCN和React中的FormLabel中添加 colored颜色

捕获表单数据时的Reactjs问题

Reaction Google Maps API无法获取标题

页面永远加载API/从数据库获取数据

Reaction路由DOM v6不包含上下文(Supabase)

安装使用环境的BIT组件的依赖项

React js拖放图像并预览

React 错误: 只能用作 元素的子元素,从不直接渲染.请将您的 包裹在

在遵循 react-navigation 的官方文档时收到警告消息

React 组件列表中的第一个计时器正在获取值 NaN

当我使用 Firebase Auth 在 React 中刷新主页时显示登录页面

表单错误后 Ionic React 无法 Select 单选按钮

如何从 React Redux store 中删除特定项目?

setState 改变对象引用

React Router 6.4CreateBrowserRouter子元素不显示

如何从 extrareducer redux 更改对象中元素的值

Lodash 在命名导入中导入整个包

交换键仍然引入了 fresh 的 DOM 元素

多次响应获取发送请求

axios post方法中的请求失败,状态码为500错误