java - Vaadin 更改文本字段标签颜色
问题描述
我正在寻找一种简单的方法来更改 Vaadin TextField 组件的标签颜色。当 Textfield 处于焦点时,它会自动变为蓝色,但我需要将其更改为另一种颜色。首先,我尝试在 css 文件中更改它,如下所示:
color: <anycolor>;
但这只是改变了输入文本的颜色。有没有办法只改变标签的颜色?我正在使用 Vaadin 14。
解决方案
如果您在浏览器 DevTools(F12 或 Ctrl+Shift+C)中检查应用于<label>
标签的 CSS,您会看到它是
:host([focused]:not([readonly])) [part="label"] {
color: var(--lumo-primary-text-color);
}
有 2 个选项如何自定义:
更改变量。 您可以编写以在全局 CSS
--lumo-primary-text-color: green;
中设置该变量的值。多种选择:- 在那个特定的 textField 上
textField.getStyle().set("--lumo-primary-text-color", "green")
,或 - 将其应用于具有类的字段,
textField.addClassName("green-text")
, 或者green-text { --lumo-primary-text-color: green; }
- 将其应用于所有文本字段:
vaadin-text-field { --lumo-primary-text-color: green; }
- 在那个特定的 textField 上
用更具体的规则重载 CSS。您需要将其添加到
vaadin-text-field
的影子 DOM中@CssImport(value = "./styles/path/yout-vaadin-text-field.css", themeFor = "vaadin-text-field")
:host(.green-text[focused]:not([readonly])) [part="label"] { color: green; }
推荐阅读
- php - 由于 htaccess 中的类似规则,RewriteRule 未执行
- linux - 在 Gnome 上的会话开始时无法访问配置文件
- unity3d - 从 C# 到 Unity3D 代码最有用的是什么
- java - 将 ArrayList 嵌套到一维
- scikit-learn - 仅使用计数矢量化器
- etl - 每次在表中插入后根据查询结果发送电子邮件 - Talend
- c - 使用我刚刚从另一个文件中读取的结构的名称创建一个文件
- google-chrome - Ctrl+P 在 Chrome 浏览器的 PDF 文件的打印预览中显示空白内容
- java - 如何在android上的地图片段上设置谷歌地图填充?而且我不想拖动地图
- php - 从 PHP 脚本获取 json 字符串输出时如何解决“输入意外结束”错误