Vue JS:如何在 router-link 中设置活动 <a> 标签的样式?
Vue JS: How to style the active <a> tag in a router-link?
我正在尝试编辑我的路由器-link,以便 文本 的颜色以及背景在 link活跃。
对于 .router-link-exact-active
class,我已将其设置为背景从某些默认值正确更改,但文本颜色始终保持不变?
确实,更改 link 文本颜色(包括非活动的默认蓝色)的唯一方法是通过样式设置标签本身。
我的 link 代码如下:
<router-link :to="{path: '/Homer'}" exact tag="li"><a>Homer</a></router-link>
标签的 CSS(在 link 激活之前设置颜色 - 它是标准颜色):
a {
color:royalblue;
text-decoration: none;
}
并且路由器精确-link-活动的 CSS 是:
.router-link-exact-active {
background: yellow;
border-radius: 5px;
color: red;
font-variant: italic;
}
因此,li 的背景颜色(当然,因为 router-link 设置为 li 标签)正确更改,但文本颜色无论如何仍保持蓝色。
文本(和其他设置样式)的颜色不应该从父 li 的指定活动 class 级联 到标签(两者都在router-link 处于活动状态和不处于活动状态) - 例如本教程中的 https://youtu.be/yn0_6T4HwHs?t=266?
如果不是,我该如何在文本处于活动状态时为其设置样式 - 我猜我会将某种活动的 class 附加到 - 不是 a:active 的文本,因为文本不是 'active' 一旦鼠标完成点击它 - 但我似乎无法找到正确的方法来做到这一点?
抱歉,这是一个非常基本的问题,但我四处寻找答案却找不到。
非常感谢。
它们确实级联,但是您有一个更具体的 a 标签的默认样式,因此您的 li 样式没有不适用。
您需要设置比默认样式更具体的样式。
.router-link-exact-active a {}
应该可以解决问题
找到罪魁祸首
当您看到应用了意想不到的样式时,没有 user/author 样式,可能的罪魁祸首是用户代理样式 sheet。您可以在检查的 a
元素的 DevTools computed styles pane 中确认这一点。找到 color
属性(第一项),展开该项以显示适用的样式,从最高优先级到最低优先级列出。优先级最高的样式是当前应用的样式。
继承颜色
如果您希望 a
元素从其父元素(在本例中为 .router-link-exact-active
)继承其颜色,请应用 inherit
.
a {
color: inherit;
}
我正在尝试编辑我的路由器-link,以便 文本 的颜色以及背景在 link活跃。
对于 .router-link-exact-active
class,我已将其设置为背景从某些默认值正确更改,但文本颜色始终保持不变?
确实,更改 link 文本颜色(包括非活动的默认蓝色)的唯一方法是通过样式设置标签本身。
我的 link 代码如下:
<router-link :to="{path: '/Homer'}" exact tag="li"><a>Homer</a></router-link>
标签的 CSS(在 link 激活之前设置颜色 - 它是标准颜色):
a {
color:royalblue;
text-decoration: none;
}
并且路由器精确-link-活动的 CSS 是:
.router-link-exact-active {
background: yellow;
border-radius: 5px;
color: red;
font-variant: italic;
}
因此,li 的背景颜色(当然,因为 router-link 设置为 li 标签)正确更改,但文本颜色无论如何仍保持蓝色。
文本(和其他设置样式)的颜色不应该从父 li 的指定活动 class 级联 到标签(两者都在router-link 处于活动状态和不处于活动状态) - 例如本教程中的 https://youtu.be/yn0_6T4HwHs?t=266?
如果不是,我该如何在文本处于活动状态时为其设置样式 - 我猜我会将某种活动的 class 附加到 - 不是 a:active 的文本,因为文本不是 'active' 一旦鼠标完成点击它 - 但我似乎无法找到正确的方法来做到这一点?
抱歉,这是一个非常基本的问题,但我四处寻找答案却找不到。
非常感谢。
它们确实级联,但是您有一个更具体的 a 标签的默认样式,因此您的 li 样式没有不适用。
您需要设置比默认样式更具体的样式。
.router-link-exact-active a {}
应该可以解决问题
找到罪魁祸首
当您看到应用了意想不到的样式时,没有 user/author 样式,可能的罪魁祸首是用户代理样式 sheet。您可以在检查的 a
元素的 DevTools computed styles pane 中确认这一点。找到 color
属性(第一项),展开该项以显示适用的样式,从最高优先级到最低优先级列出。优先级最高的样式是当前应用的样式。
继承颜色
如果您希望 a
元素从其父元素(在本例中为 .router-link-exact-active
)继承其颜色,请应用 inherit
.
a {
color: inherit;
}