vue-router:如何从 router-link 中删除下划线
vue-router : how to remove underline from router-link
这导致带下划线的 link:
<li><router-link to="/hello">Hello</router-link></li>
我的理解是 router-link
元素生成一个 a
标签。
我在 CSS 中尝试过这些东西:
router-link{
text-decoration: none;
}
router-link a{
text-decoration: none;
}
router-link a{
text-decoration: none !important;
}
..但不幸的是 none 这些工作。
Vue 组件标签不生成 HTML 标签。
在 DOM 检查器中查看实际存在的 HTML 标签。
您需要使用常规类名。
您可以像这样尝试定位列表项 link:
li a {
text-decoration: none;
}
转换为<a ...
所以要删除下划线试试这个
a { text-decoration: none; }
你可以使用路由器 link 的 tag prop 来使用 li css class 像这样:
<li><router-link tag="li" to="/hello">Hello</router-link></li>
link 现在将使用 li css 属性,但仍像普通路由器一样工作 link。
将 class 添加到路由器-link 标签:
<router-link class="routerLink" to="/hello">Hello</router-link>
然后把css给class:
.routerLink{
text-decoration: none;
}
这应该有效:)
如果有人使用 Vuetify 遇到这个问题,请注意由于 Vuetify 的内置样式,下面的样式不起作用。您必须改用内联 CSS 样式:
<router-link
style="text-decoration: none; color: inherit;"
to="/hello">
SCSS
div /deep/ .v-list a {
text-decoration: none;
}
CSS
div >>> .v-list a{
text-decoration: none;
}
虽然这个答案看起来很明显。
我想我上面的同事忘了提到,如果你使用 vuetify 和 Laravel 框架,这个问题可以按如下方式解决。
访问:
resources\sass\app.scss file
并注释掉这一行:
@import '~bootstrap/scss/bootstrap';
这通常可以解决这类问题,实际上是库冲突。
如果您使用的是 Bootstrap 5,则可以使用 class text-decoration-none
<router-link href="yourlink" class="text-decoration-none" >
</router-link>
参见 bootsrap documentation 以供参考。只是附加信息我在我的应用程序中使用 Vue 3
即使在 React-Router。 Link 标签使文本带有下划线。因为标签内的任何文本(h1、h3、p)都被转换为锚标签,所以:
a{text-decoration: none;}
这导致带下划线的 link:
<li><router-link to="/hello">Hello</router-link></li>
我的理解是 router-link
元素生成一个 a
标签。
我在 CSS 中尝试过这些东西:
router-link{
text-decoration: none;
}
router-link a{
text-decoration: none;
}
router-link a{
text-decoration: none !important;
}
..但不幸的是 none 这些工作。
Vue 组件标签不生成 HTML 标签。
在 DOM 检查器中查看实际存在的 HTML 标签。
您需要使用常规类名。
您可以像这样尝试定位列表项 link:
li a {
text-decoration: none;
}
转换为<a ...
所以要删除下划线试试这个
a { text-decoration: none; }
你可以使用路由器 link 的 tag prop 来使用 li css class 像这样:
<li><router-link tag="li" to="/hello">Hello</router-link></li>
link 现在将使用 li css 属性,但仍像普通路由器一样工作 link。
将 class 添加到路由器-link 标签:
<router-link class="routerLink" to="/hello">Hello</router-link>
然后把css给class:
.routerLink{
text-decoration: none;
}
这应该有效:)
如果有人使用 Vuetify 遇到这个问题,请注意由于 Vuetify 的内置样式,下面的样式不起作用。您必须改用内联 CSS 样式:
<router-link
style="text-decoration: none; color: inherit;"
to="/hello">
SCSS
div /deep/ .v-list a {
text-decoration: none;
}
CSS
div >>> .v-list a{
text-decoration: none;
}
虽然这个答案看起来很明显。 我想我上面的同事忘了提到,如果你使用 vuetify 和 Laravel 框架,这个问题可以按如下方式解决。 访问:
resources\sass\app.scss file
并注释掉这一行:
@import '~bootstrap/scss/bootstrap';
这通常可以解决这类问题,实际上是库冲突。
如果您使用的是 Bootstrap 5,则可以使用 class text-decoration-none
<router-link href="yourlink" class="text-decoration-none" >
</router-link>
参见 bootsrap documentation 以供参考。只是附加信息我在我的应用程序中使用 Vue 3
即使在 React-Router。 Link 标签使文本带有下划线。因为标签内的任何文本(h1、h3、p)都被转换为锚标签,所以:
a{text-decoration: none;}