将 Vaadin 14 按钮显示为 link
Display Vaadin 14 button as a link
Button 可以在 Vaadin 14 中显示为 link 吗?
也就是说,它是否可以与悬停时带下划线的标签内联显示?
在 Vaadin 8 中 the equivalent 看起来是:
button.setStyleName(VaaloTheme.BUTTON_LINK);
如果您的用例是内部链接到应用程序的其他视图/路由,我建议使用 RouterLink
组件而不是按钮。对于链接外部链接,我会推荐 Anchor
组件。这些在语义上将是更好的匹配。
但是 Button
也可以设置样式。按钮没有完全相似的内置变体,但有一个很接近,ButtonVariant.TERTIARY_INLINE
。
所以如果你这样做 button.addThemeVariants(ButtonVariant.TERTIARY_INLINE)
你会得到一个只有文本的按钮,但文本没有下划线。
如果你真的需要给文本加上下划线,你需要导入额外的样式模块(这建立在 ButtonVariant.TERTIARY_INLINE
变体之上。将它放在“frontend/styles/my-button.css
:host(.underline) [part~="label"] {
text-decoration: underline;
font-weight: 400;
}
并使用 @CssImport("./styles/my-button.css", themeFor="vaadin-button")
导入并添加 class 名称 button.addClassName("underline")
有了流程,你可以反过来:我怎样才能让 link 工作
像一个按钮。
例如您可以在 Anchor
:
的元素上添加一个 click
侦听器
new Anchor().tap{
setText("Greet")
getElement().tap {
getStyle().set('cursor', 'pointer')
addEventListener('click', {
println "Clicked"
})
}
}
Button 可以在 Vaadin 14 中显示为 link 吗?
也就是说,它是否可以与悬停时带下划线的标签内联显示?
在 Vaadin 8 中 the equivalent 看起来是:
button.setStyleName(VaaloTheme.BUTTON_LINK);
如果您的用例是内部链接到应用程序的其他视图/路由,我建议使用 RouterLink
组件而不是按钮。对于链接外部链接,我会推荐 Anchor
组件。这些在语义上将是更好的匹配。
但是 Button
也可以设置样式。按钮没有完全相似的内置变体,但有一个很接近,ButtonVariant.TERTIARY_INLINE
。
所以如果你这样做 button.addThemeVariants(ButtonVariant.TERTIARY_INLINE)
你会得到一个只有文本的按钮,但文本没有下划线。
如果你真的需要给文本加上下划线,你需要导入额外的样式模块(这建立在 ButtonVariant.TERTIARY_INLINE
变体之上。将它放在“frontend/styles/my-button.css
:host(.underline) [part~="label"] {
text-decoration: underline;
font-weight: 400;
}
并使用 @CssImport("./styles/my-button.css", themeFor="vaadin-button")
导入并添加 class 名称 button.addClassName("underline")
有了流程,你可以反过来:我怎样才能让 link 工作 像一个按钮。
例如您可以在 Anchor
:
click
侦听器
new Anchor().tap{
setText("Greet")
getElement().tap {
getStyle().set('cursor', 'pointer')
addEventListener('click', {
println "Clicked"
})
}
}