vaadin - div标签类属性包含很多字符串,不能用css字符串定义字符串替换
问题描述
我正在尝试开发一个 UI,第一步是创建 CssLayout。每个 CssLayout 组件都分层添加了许多 CssLayout 组件。
问题是当我运行应用程序并检查 div 标签时,class 属性有额外的字符串需要删除。
<div class="v-csslayout v-layout v-widget .content-container v-
csslayout-.content-container v-has-width v-has-height" style="width: 100%;
height: 100%;"><div class="v-csslayout v-layout v-widget .inner-content-
container v-csslayout-.inner-content-container"></div></div>
我需要的是
<div class=".content-container">
<div class=".inner-content-container">
</div>
</div>
Java 代码:
@StyleSheet("{css/spreadjsdefault.css}")
public class SpreadJSWidget extends CssLayout {
/**
*
*/
public SpreadJSWidget() {
super();
addStyleName(".content-container");
CssLayout mainBox = new CssLayout();
mainBox.addStyleName(".inner-content-container");
addComponent(mainBox);
}
spreadjsdefault.css(它们现在是空的)
.content-container
{
}
.inner-content-container
{
}
请指教 !
解决方案
两件事情:
为了能够正确匹配css规则,
.
添加样式名时必须省略前导,即addStyleName("contentContainer")
. 这样,css 元素将匹配您的样式定义。类似的Css 类
v-csslayout
是 vaadin 定义的默认类,默认主题使用它来提供基本布局。它们默认存在,不能(实际上不应该)完全删除。但是,您可以做的是自己定义和覆盖这些规则。重要的是:无论哪种方式,当您在样式表中定义它们时,您的自定义类仍然匹配,并且可以覆盖默认主题。
推荐阅读
- mysql - Google 表格 - 根据表格 B 中的列中的值在表格 A 中生成 n 行
- android - 无法使用 FileProvider.getUriForFile() 发送文件
- javascript - 与现有聚合绑定的附加过滤器
- angular - Angular,ag-grid 在我可以设置行数据之前获取数据
- html - Bootstrap 4 Grid - 对齐元素彼此靠近
- python - Python BeautifulSoup:“list_iterator”对象不可下标
- android - 使用 RxBinding 同步两个视图
- html - 斜体 HTML 占位符中的单个单词
- ios - 调整 UIDatePicker 的可访问性内容
- excel - 找到第一个非零值后的单元格总和 - Excel?