在应用栏中突出显示活动页面的问题

Posted

技术标签:

【中文标题】在应用栏中突出显示活动页面的问题【英文标题】:Problem in Highlighiting the active page in appbar 【发布时间】:2022-01-02 18:40:06 【问题描述】:

我正在尝试突出显示导航栏中的活动页面,背景颜色为白色,文本颜色为天蓝色。但由于某种原因,我无法看到应用栏中应用的文本天蓝色的颜色。您可以在下面的图片中看到它是如何显示的。

                    <Box>
                        <IconButton>
                            <NavLink to='/' 
                             activeClassName='selected'>
                                <Typography
                                    variant='body1'
                                    style=
                                        marginRight: "1rem",
                                        color: "white",
                                    >
                                    Dashboard
                                </Typography>
                            </NavLink>
                            <NavLink
                                to='/aboutus'
                                activeClassName='selected'>
                                <Typography
                                    variant='body1'
                                    style=
                                        marginRight: "1rem",
                                        color: "white",
                                    >
                                    About Us
                                </Typography>
                            </NavLink>
                            <NavLink
                                to='/contactus'
                                activeClassName='selected'>
                                <Typography
                                    variant='body1'
                                    style=
                                        marginRight: "1rem",
                                        color: "white",
                                    >
                                    Contact Us
                                </Typography>
                            </NavLink>
                        </IconButton>
                    </Box>

用于此的样式在这里:

    .selected 
        background-color: white;
        color: skyblue;
    

【问题讨论】:

我想内联 color: "white" 会导致内联样式的优先级高于基于类的样式。 因为您在 Typography 中添加了颜色样式。您的活动课程正在应用,但您专门将颜色传递给排版,因此它会根据优先级采用该颜色。 【参考方案1】:

因为您在 Typography 中添加了颜色样式。您的活动类正在被应用,但您专门将颜色传递给排版,因此它会根据优先级采用该颜色。

你可以做这样的事情。

.nav-link 
  margin-right: "1rem"; 
  color: "white";

.selected 
  background-color: white;
  color: skyblue;
<Box>
  <IconButton>
    <NavLink to='/' activeClassName='selected' className="nav-link">
      <Typography variant='body1'>
        Dashboard
      </Typography>
    </NavLink>
    <NavLink to='/aboutus' className="nav-link" activeClassName='selected'>
      <Typography variant='body1'>
        About Us
      </Typography>
    </NavLink>
    <NavLink to='/contactus' className="nav-link" activeClassName='selected'>
      <Typography variant='body1'>
        Contact Us
      </Typography>
    </NavLink>
  </IconButton>
</Box>

如果这不起作用,您可以将其添加为一个类并有条件地将其切换为活动状态。

编辑:感谢@DBS 指出先前答案中的错误。

【讨论】:

内联样式仍会覆盖类样式,您需要应用新的内联样式,或使用类应用所有样式以轻松解决此问题。 虽然我们正在应用外部样式,但我们并没有得到想要的输出。非活动页面的颜色不是白色,但它们显示为常规链接 您能分享一下预期结果和当前结果吗?如果可能,也可以分享工作示例。 在 CSS margin-right: "1rem" 中找出问题;白颜色”;我们需要把“”拿出来,我正在和他们一起尝试,这就是我没有得到想要的输出的原因。

以上是关于在应用栏中突出显示活动页面的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在母版页菜单中突出显示活动页面?

如何在 iOS 的标签栏中禁用蓝色突出显示?

使用反应在引导程序中突出显示当前页面

VueJS将活动类添加到侧边栏链接

html 突出显示Navbar上的活动页面

如何在导航栏上突出显示活动路线?