reactjs - 如何使用样式化的组件为 Material UI 中的 Select 设置样式?
问题描述
我正在努力
export const StyledAppSelect = styled(Select)`
&:before {
border-color: white;
}
&:after {
border-color: white;
}
color: white;
`
但这似乎并没有改变字体颜色或边框颜色。任何帮助将不胜感激。
谢谢你。
解决方案
为了知道如何设置它的样式 - 您首先需要检查为该组件实际生成的 HTML。因为有些样式可以应用到顶层<div>
,有些样式可能需要应用到嵌套元素。
这是一个例子:
import Select from '@material-ui/core/Select';
// width or color can be set on top level
// but to get styled border you need to style nested div
const StyledSelect = styled(Select)`
width: 100px;
color: red;
& > div {
border: 2px solid green;
}
`;
....
....
// somewhere in where you need to render it
<StyledSelect>
<MenuItem value={10}>Ten</MenuItem>
<MenuItem value={20}>Twenty</MenuItem>
<MenuItem value={30}>Thirty</MenuItem>
</StyledSelect>
这是它的样子(但我没有更改图标:hover
等。这就是为什么你在图片上看到的有点奇怪):
要设置图标样式,您可以添加以下内容:
& > svg {
color: red;
}
或者您可以更改输入的底部边框:
// yeah, sometimes it's not that easy to override frameworks styles :)
// so, to figure out what to override you need to check what framework generates for you
// e.g. this ":hover:not(.Mui-disabled):before" is how Material adds
// bottom border when you hover input (the dark line on the img I attached above), so that's the way how we can override it
&:hover:not(.Mui-disabled):before {
border-bottom: 2px solid yellow;
}
希望你明白:)
推荐阅读
- discord - 我如何从频道 discord.js 中获取所有提到的用户
- flutter - Dart 泛型类型作为类成员函数的类型
- pyspark - 无法修剪 pyspark 数据框中的空白空间
- javascript - onChange 正在重置状态 - useState
- mongodb - 带有 Reactive mongo 自动配置的 Spring 缓存 mongodb
- npm - 了解 Tailwind CSS for React 的 npm install 命令
- php - 如何在 WordPress 中使用简码回显 div 元素
- javascript - 如何循环 JSON 数据并将其部分放入另一个数组中?
- c# - 在 .net core wep api 中更改 appsettings 文件中的连接字符串参数
- reactjs - 如何使用 Auth0 SDK 处理访问令牌和 API 调用?