javascript - 如何居中对齐 Material UI Switch 和它的图标道具?
问题描述
我将 Material-UI 用于 Switch 组件。此组合具有图标的属性。问题是,当您添加图标时,对齐方式就会偏离。
如何在我的 Switch 中居中对齐两个图标?
使用问题的副本查看此沙箱:
https://codesandbox.io/s/nervous-yalow-z9dev?file=/src/App.js
解决方案
我认为在 Material-UI 4 中没有一种优雅的方式来做到这一点(参见答案底部的示例)。
您可以使用 propclasses
到达要居中的switchBase
(.MuiSwitch-switchBase) 元素。您可以使用makeStyles钩子生成器执行此操作,它允许您覆盖样式:
import { makeStyles } from "@material-ui/core/styles";
const useStyles = makeStyles({
yourClass: {
/* Your styles */
},
});
export default function App() {
const classes = useStyles();
return (
<div className="App">
<Switch classes={{switchBase: classes.yourClass}} />
</div>
);
}
switchBase
元素有position: absolute
. 为了居中,我们不能使用:
top: 50%;
transform: translateY(-50%);
通过执行Switch
组件的巧妙方法。
但是我们可以使用:
height: elementHeight;
top: 50%;
marginTop: -elementHeight/2;
您可以查看下面的完整示例以及一些其他样式,以使其看起来更好:
https://codesandbox.io/s/zealous-kapitsa-xgkzg?file=/src/App.js
推荐阅读
- javascript - 如何访问投影的任意 Angular 子组件中的方法
? - amazon-s3 - Kafka Connect Sink 到 S3:`AmazonS3Exception:我们遇到内部错误`
- sql - 更新 SQL Server 中的索引对性能的影响?
- python - Finding the squares of each number in a user input list. (Python 3.x)
- selenium - Chrome 无头测试
- c# - C# 编译器可以在泛型类型上使用带有 foreach 的鸭子类型吗?
- javascript - My code uses an API with secret key in several locations. How can I upload the code to GitHub without also uploading my key?
- awk - grep match next word after pattern until first space
- rest - 使用 POST 请求删除或获取数据
- next.js - “@atlaskit/tooltip”不适用于 Next.js