将 css 从 GWT(动态地)设置为具有多个关联样式的元素
Set css from GWT (dynamically) to element with multiple styles associated
我有一个 TabLayoutPanel 实例,其中可以动态设置选项卡的数量。因此,要对齐选项卡以填充屏幕的整个宽度,我需要
1) 用 auto 覆盖 gwt-TabTayoutPanel 默认值宽度 16384px !important (done);
2) 将 gwt-TabTayoutPanelTab 的宽度设置为适当的百分比值(例如 2 个选项卡 = 50%。3 个选项卡 = 33%,4 个选项卡 = 25% 等等).
我有一个简单的功能,就像这样(简化):
双 css值 = 100.0/getWidgetCount();
(完成)
3) 现在我的问题来了:如何从 Java 设置 gwt-TabTayoutPanelTab 的宽度?我加粗了 Tabs 因为当我使用 this.getStyleName();
我进入了 return gwt-TabLayoutPanel 而不是 gwt-TabLayoutPanelTab .
总而言之,我可以将我的问题分为两部分:
-如何从 GWT 访问 TabLayoutPanelTab css class?;
-如何使用我动态生成的百分比数字设置所述 class 宽度?;
编辑:
正确编辑函数以确定百分比值。
-如何从 GWT 访问 TabLayoutPanelTab css class?;
int widgetCount = panel.getWidgetCount();
for(int i = 0; i < widgetCount; i++)
System.out.println(panel.getTabWidget(i).getParent().getStyleName());
}
如您所见,无法直接访问选项卡。您可以做的是访问选项卡中的小部件,并获取它们的父项,即有问题的选项卡。
-如何使用我动态生成的百分比数字设置所述 class 宽度?;
- 如果您有一定数量的可能百分比,那么您可以在使用
!important
注释以覆盖其他所有内容。
- 如果前面的解决方案不能接受那么你只能使用内联css。 这意味着该元素必须已经加载到 DOM。 在您知道该元素已加载的代码中的某处,您可以这样调用:
int widgetCount = panel.getWidgetCount();
for(int i = 0; i < widgetCount; i++) {
com.google.gwt.user.client.Element tabElement = panel.getTabWidget(i).getParent().getElement();
tabElement.getStyle().setWidth(100/widgetCount, Unit.PCT);
}
我有一个 TabLayoutPanel 实例,其中可以动态设置选项卡的数量。因此,要对齐选项卡以填充屏幕的整个宽度,我需要
1) 用 auto 覆盖 gwt-TabTayoutPanel 默认值宽度 16384px !important (done);
2) 将 gwt-TabTayoutPanelTab 的宽度设置为适当的百分比值(例如 2 个选项卡 = 50%。3 个选项卡 = 33%,4 个选项卡 = 25% 等等). 我有一个简单的功能,就像这样(简化):
双 css值 = 100.0/getWidgetCount();
(完成)
3) 现在我的问题来了:如何从 Java 设置 gwt-TabTayoutPanelTab 的宽度?我加粗了 Tabs 因为当我使用 this.getStyleName();
我进入了 return gwt-TabLayoutPanel 而不是 gwt-TabLayoutPanelTab .
总而言之,我可以将我的问题分为两部分:
-如何从 GWT 访问 TabLayoutPanelTab css class?;
-如何使用我动态生成的百分比数字设置所述 class 宽度?;
编辑: 正确编辑函数以确定百分比值。
-如何从 GWT 访问 TabLayoutPanelTab css class?;
int widgetCount = panel.getWidgetCount();
for(int i = 0; i < widgetCount; i++)
System.out.println(panel.getTabWidget(i).getParent().getStyleName());
}
如您所见,无法直接访问选项卡。您可以做的是访问选项卡中的小部件,并获取它们的父项,即有问题的选项卡。
-如何使用我动态生成的百分比数字设置所述 class 宽度?;
- 如果您有一定数量的可能百分比,那么您可以在使用
!important
注释以覆盖其他所有内容。 - 如果前面的解决方案不能接受那么你只能使用内联css。 这意味着该元素必须已经加载到 DOM。 在您知道该元素已加载的代码中的某处,您可以这样调用:
int widgetCount = panel.getWidgetCount(); for(int i = 0; i < widgetCount; i++) { com.google.gwt.user.client.Element tabElement = panel.getTabWidget(i).getParent().getElement(); tabElement.getStyle().setWidth(100/widgetCount, Unit.PCT); }