gpt4 book ai didi

reactjs - 如何在样式组件中覆盖嵌套的 material-ui 类?

转载 作者:行者123 更新时间:2023-12-05 03:56:50 24 4
gpt4 key购买 nike

Method 1:
const StyledTextField = styled(({ ...rest }) => (
<OutlinedInput {...rest} classes={{ root: 'outlinedRoot' }} />
))`
.outlinedRoot {
.$notchedOutline {
border-color: red;
}
}
background: #fff;
border-radius: 4px;
color: #808080;
height: 53px;
`;

Method 2:
const StyledTextField = styled(OutlinedInput).attrs({
classes: { root: 'outlinedRoot', notchedOutline: 'notchedOutline' }
})`
.outlinedRoot {
.notchedOutline {
border-color: red;
}
}
background: #fff;
border-radius: 4px;
color: #808080;
height: 53px;
`;

我也看到了需要添加哪些类并阅读了相关文章,但我无法覆盖

我尝试了以上两种方法来更改轮廓颜色,但我无法做到这一点

最佳答案

下面是执行此操作的一种方法的示例。要使用 TextField 而不是 OutlinedInput 执行此操作,只需在 .MuiOutlinedInput-root 之前添加一个空格,以便将其作为 的后代进行匹配>TextField 而不是将其作为根元素上的其他类之一进行匹配。 .MuiOutlinedInput-root 对于样式实际上是不必要的,除了有助于 CSS 特异性。

import React from "react";
import ReactDOM from "react-dom";

import OutlinedInput from "@material-ui/core/OutlinedInput";
import styled from "styled-components";

const StyledOutlinedInput = styled(OutlinedInput)`
&.MuiOutlinedInput-root .MuiOutlinedInput-notchedOutline {
border-color: green;
}
&:hover.MuiOutlinedInput-root .MuiOutlinedInput-notchedOutline {
border-color: red;
}
&.MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {
border-color: purple;
}
`;

function App() {
return (
<div className="App">
<StyledOutlinedInput defaultValue="My Default Value" />
</div>
);
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

Edit custom outline styled-components

相关回答:

关于reactjs - 如何在样式组件中覆盖嵌套的 material-ui 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59033616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com