微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何设置边栏样式?

如何解决如何设置边栏样式?

只需进行Web编程,并尝试更改侧边栏背景的颜色。这有效:

const useStyles = makeStyles(theme() => ({ 
    drawer: {
        backgroundColor:'#FFFFFF'
    },}));

const MySidebar = (props:any) => {
    const classes = useStyles();
    return (
        <Sidebar className={classes.drawer} {...props} />
    );
);

...但这不是:

const useStyles = makeStyles(theme() => ({ 
    drawer: {
        backgroundColor:'#FFFFFF'
    },}));

const MySidebar = (props:any) => {
    const classes = useStyles();
    return (
        <Sidebar classes={classes} {...props} />
    );
);

为什么不起作用?以及如何找出要覆盖的CSS类名称是什么?我使用了Chrome的检查器工具,并且CSS类名称为“ MuiDrawer-docked”,所以我不知道它最终如何变成“抽屉”。

我还在尝试将侧边栏的宽度设置为0(实际上是将其隐藏)。如果我将其放在主题之外,它会起作用:

sidebar: {
    width: 300,closedWidth: 0,},

但是一旦将其放入useStyle中,它就不会:

const useStyles = makeStyles(theme() => ({ 
    sidebar: {
        width: 300,}));

const MySidebar = (props:any) => {
    const classes = useStyles();
    return (
        <Sidebar className={classes.sidebar} {...props} />
    );
);

我最终要实现的是这两者的结合(背景颜色更改+侧边栏宽度接近0),因此使用了“类”而不是className。

解决方法

在您的第二个示例中,由于以下原因,它不起作用:

类 = {classes} {... props} />

课程应为 className

此外,在第一个示例中,您访问了 classes.drawer 对象,该对象实际上包含样式。而在第二个示例中,您只是传递了类对象,而没有实际指定它应使用的键。

最后,在您的最后一个示例中:

    const useStyles = makeStyles(theme() => ({ 
    sidebar: {
        width: 300,closedWidth: 0,},}));

您正在尝试使用 closedWidth 作为CSS样式。不存在封闭宽度作为CSS样式。

要在React中动态更改元素的宽度,您可能需要使用对dom节点的引用来即时更改样式。

您可以找到有关裁判here

的有用信息

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。