Vaadin 14:如何更改 TextField 标签(标题)的宽度?
Vaadin14: How to change width of TextField label (caption)?
我想使用 Vaadin14 更改 TextField 的标签(标题)的宽度。使用默认值,即使我将 TextField 的大小设置为“setSizeFull”,标题也只会部分显示。
我尝试了以下(类似于 Vaadin14 应用启动代码):
TextField queryString = new TextField();
queryString.setWidth("200px");
queryString.setLabel("long label text, long label text, long label text");
queryString.setThemeName("longlabel");
CSS 文件导入:
@CssImport(value = "./styles/vaadin-text-field-styles.css", themeFor = "vaadin-text-field")
而vaadin-text-field-styles.css的内容是:
:host([theme~="longlabel"]) [part="label"] {
width: 400px;
}
这不会改变标签的宽度。
是否可以查找 Vaadin14 组件的默认 CSS 设置?这对其他组件的更改也有帮助。
您的父布局是否有足够的空间来显示该文本?它可能会从标签上剪下来。
当您使用 setSizeFull()
时,这意味着您正在尝试使用与父元素一样多的 space。如果你想使用尽可能多的 space 作为你的内容需要,你通常需要 setSizeUndefined()
,虽然我认为 TextField 可能有一个默认宽度(至少它曾经在 Vaadin 8 中使用)并且在那种情况下它可能行不通。 (我手头没有 Vaadin 14 项目来测试这个。)
你试过queryString.setWidth("400px");
有什么不同吗?
编辑:overflow: visible
允许标签超出 TextField 的主体。
标签的宽度受主组件宽度的限制。当您将文本字段的宽度设置为 200px 时,标签不能超过该宽度。
要让它按你喜欢的方式工作(标签比字段长),你要么需要按照安娜的建议(溢出:可见),要么将主要组件宽度设置为自动,并设置内部组件的宽度文本输入元素设置为固定值(例如 200px)。
这是一种方法。
vaadin-文本字段-styles.css:
:host {
--vaadin-text-field-default-width: auto;
}
[part="input-field"] {
width: var(--input-field-width);
}
Java:
TextField queryString = new TextField();
queryString.getElement().getStyle().setProperty("--input-field-width", "200px");
我想使用 Vaadin14 更改 TextField 的标签(标题)的宽度。使用默认值,即使我将 TextField 的大小设置为“setSizeFull”,标题也只会部分显示。 我尝试了以下(类似于 Vaadin14 应用启动代码):
TextField queryString = new TextField();
queryString.setWidth("200px");
queryString.setLabel("long label text, long label text, long label text");
queryString.setThemeName("longlabel");
CSS 文件导入:
@CssImport(value = "./styles/vaadin-text-field-styles.css", themeFor = "vaadin-text-field")
而vaadin-text-field-styles.css的内容是:
:host([theme~="longlabel"]) [part="label"] {
width: 400px;
}
这不会改变标签的宽度。
是否可以查找 Vaadin14 组件的默认 CSS 设置?这对其他组件的更改也有帮助。
您的父布局是否有足够的空间来显示该文本?它可能会从标签上剪下来。
当您使用 setSizeFull()
时,这意味着您正在尝试使用与父元素一样多的 space。如果你想使用尽可能多的 space 作为你的内容需要,你通常需要 setSizeUndefined()
,虽然我认为 TextField 可能有一个默认宽度(至少它曾经在 Vaadin 8 中使用)并且在那种情况下它可能行不通。 (我手头没有 Vaadin 14 项目来测试这个。)
你试过queryString.setWidth("400px");
有什么不同吗?
编辑:overflow: visible
允许标签超出 TextField 的主体。
标签的宽度受主组件宽度的限制。当您将文本字段的宽度设置为 200px 时,标签不能超过该宽度。
要让它按你喜欢的方式工作(标签比字段长),你要么需要按照安娜的建议(溢出:可见),要么将主要组件宽度设置为自动,并设置内部组件的宽度文本输入元素设置为固定值(例如 200px)。
这是一种方法。
vaadin-文本字段-styles.css:
:host {
--vaadin-text-field-default-width: auto;
}
[part="input-field"] {
width: var(--input-field-width);
}
Java:
TextField queryString = new TextField();
queryString.getElement().getStyle().setProperty("--input-field-width", "200px");