【问题标题】:Bottom Navigation Material UI Override底部导航材质 UI 覆盖
【发布时间】:2021-10-06 00:53:30
【问题描述】:

我正在尝试从 Material UI [此处][1] 覆盖底部导航图标的颜色。这是我的 CSS 代码:

.MuiButtonBase-root{
    color: #007A78;
}

.MuiBottomNavigationAction-root{
    color: #007A78;
}

.Mui-selected{
    color: #007A78;
}

我正在尝试将默认蓝色更改为我的颜色(绿色)。但是,我只注意到文本改变了颜色,而不是图标: [![在此处输入图像描述][2]][2] 我使用元素来查看css,显然图标的颜色没有改变。它仍然是相同的蓝色。 [![在此处输入图片描述][3]][3]

有谁知道如何覆盖它? [1]:https://mui.com/api/bottom-navigation-action/ [2]:https://i.stack.imgur.com/cG9DW.png [3]:https://i.stack.imgur.com/joxTL.png

【问题讨论】:

    标签: css material-ui


    【解决方案1】:

    您可以使用sxMaterial UI 更新bottom navigation 组件的样式。您可以单独设置类的样式,以根据 UI 应用不同的样式。

    sx={{
       "& .MuiBottomNavigationAction-root, .Mui-selected, svg": {
         color: "#007A78"
       }
    }}
    

    要仅设置活动导航项的样式,您可以定位.Mui-selected 类,如下所示

    sx={{
        "& .Mui-selected, .Mui-selected > svg": {
          color: "#007A78"
        }
    }}
    

    完整代码example

    import * as React from "react";
    import Box from "@mui/material/Box";
    import BottomNavigation from "@mui/material/BottomNavigation";
    import BottomNavigationAction from "@mui/material/BottomNavigationAction";
    import RestoreIcon from "@mui/icons-material/Restore";
    import FavoriteIcon from "@mui/icons-material/Favorite";
    import LocationOnIcon from "@mui/icons-material/LocationOn";
    
    export default function SimpleBottomNavigation() {
      const [value, setValue] = React.useState(0);
    
      return (
        <Box sx={{ width: 500 }}>
          <BottomNavigation
            showLabels
            value={value}
            onChange={(event, newValue) => {
              setValue(newValue);
            }}
            sx={{
              "& .MuiBottomNavigationAction-root, .Mui-selected, svg": {
                color: "#007A78"
              }
            }}
          >
            <BottomNavigationAction label="Recents" icon={<RestoreIcon />} />
            <BottomNavigationAction label="Favorites" icon={<FavoriteIcon />} />
            <BottomNavigationAction label="Nearby" icon={<LocationOnIcon />} />
          </BottomNavigation>
        </Box>
      );
    }

    【讨论】:

    • 在这种情况下,所有 3 个选项卡将具有相同的颜色,我希望当用户单击该选项卡时图标变为绿色 :(
    • 如果我只留下“Mui-selected”,只有文本改变颜色,图标是一样的,但如果我也留下“svg”,所有图标都有相同的颜色
    • 您是否只希望active 项目的标签和图标为绿色? codesandbox
    • 是的,没错
    • 甜蜜!感谢您的帮助!我对这些很陌生哈哈!
    猜你喜欢
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    相关资源
    最近更新 更多