gpt4 book ai didi

java - 如何以编程方式在 TextBox 上设置 css 错误样式

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:34 26 4
gpt4 key购买 nike

为什么我不能将自定义 css 样式应用于单个 TextBox?

我正在尝试在单个 TextBox 上设置一些错误样式。下面的实现有什么问题?

初始化:

static final String STYLES = ErrorRes.INSTANCE.css().style();

@UiField TextBox box;
box.setStylePrimaryName(STYLES);

资源接口(interface)

interface ErrorRes extends ClientBundle {
static final ErrorRes INSTANCE = GWT.create(ErrorRes.class);

@Source("Error.css")
Style css();

interface Style extends CssResource {
@ClassName("gwt-TextBox-error")
String style();
}
}

错误.css

.gwt-TextBox-error {
border: 1px solid red !important;
}

最佳答案

如果您想在小部件上获取 gwt-TextBox-error 样式名称,您需要设置 box.setStylePrimaryName("gwt-TextBox"); - 这是默认设置。当错误发生时使用 box.setStyleDependentName("error", true); HTML 将是 class="gwt-TextBox gwt-TextBox-error"。要清除错误样式,请使用 box.setStyleDependentName("error", false);

您可以以相同的方式使用 addStyleName("gwt-TextBox-error")removeStyleName("gwt-TextBox-error")

---更新---

因此,我尝试运行您的案例并且效果很好。首先,您需要在运行时将资源中的 css 注入(inject)页面:

ErrorRes.INSTANCE.css().ensureInjected();

我在 onModuleLoad() 的开头使用它

然后,添加错误样式使用:box.addStyleName(STYLES);box.removeStyleName(STYLES); 将其删除。

您不能将 setStylePrimaryName()setStyleDependentName() 与捆绑的 css 一起使用,因为 css 名称将被混淆。

关于java - 如何以编程方式在 TextBox 上设置 css 错误样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15359931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com