我正在尝试在Vaadin中进行内联编辑。我认为实现这一目标的好方法是造型 文本字段使它们看起来像标签,并在聚焦时切换到文本字段的样式。
是否可以将文本字段设置为看起来像标签?如果有可能,我怎么能做到?
答案 0 :(得分:5)
您可以在自己的主题中覆盖Vaadin样式。如果您还没有主题,请在名为themes
的VAADIN目录下创建一个目录,并按主题名称在主题中创建一个子目录,例如。 mytheme的。
Vaadin 6:
setTheme("mytheme")
myTextField.setStyleName("labelstyle");
styles.css的:
@import "../reindeer/styles.css";
.v-textfield-labelstyle {
background: none repeat scroll 0 0 #F5F5F5;
border-color: #F5F5F5;
border-image: none;
border-left: 1px solid #F5F5F5;
border-radius: 3px 3px 3px 3px;
border-right: 1px solid #F5F5F5;
border-style: solid;
border-width: 1px;
}
Vaadin 7:
@Theme("mytheme")
注释myTextField.setStyleName("labelstyle");
styles.css的:
@import "../reindeer/reindeer.scss";
.mytheme {
@include reindeer;
.v-textfield-labelstyle {
background: none repeat scroll 0 0 #F5F5F5;
border-color: #F5F5F5;
border-image: none;
border-left: 1px solid #F5F5F5;
border-radius: 3px 3px 3px 3px;
border-right: 1px solid #F5F5F5;
border-style: solid;
border-width: 1px;
}
}
java -cp '../../../WEB-INF/lib/*' com.vaadin.sass.SassCompiler styles.scss styles.css
这个小技巧会给你一个类似Label的TextField,在聚焦时变成普通的TextField。
请注意,这仅适用于使用Reindeer主题和默认背景颜色#F5F5F5。如果您使用其他主题或背景颜色与原始颜色不同,则必须稍微调整一下。
答案 1 :(得分:1)
文本字段由此HTML表示:
<input type="text" class="v-textfield v-widget" tabindex="0" style="">
如何在“v-textfield v-widget”CSS上使用How to remove border (outline) around text/input boxes? (Chrome)呢?