我正在尝试在Vaadin中进行行内编辑。我认为实现这一目标的好方法是将文本字段样式化,使其看起来像标签,并在聚焦时切换到文本字段的样式。
是否可以将文本字段样式化以呈现标签的外观?如果可能的话,我该如何做呢?
我正在尝试在Vaadin中进行行内编辑。我认为实现这一目标的好方法是将文本字段样式化,使其看起来像标签,并在聚焦时切换到文本字段的样式。
是否可以将文本字段样式化以呈现标签的外观?如果可能的话,我该如何做呢?
您可以在自己的主题中覆盖Vaadin样式。如果您还没有主题,请在VAADIN目录下创建一个名为themes
的目录,并在主题下创建一个子目录,例如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
来编译您的主题。这个小技巧将给您一个类似标签的文本框,当聚焦时变成普通文本框。
请注意,这仅适用于使用Reindeer主题和默认背景颜色#F5F5F5时。如果您使用其他主题或背景颜色与原始颜色不同,则需要进行一些微调。
<input type="text" class="v-textfield v-widget" tabindex="0" style="">
如何将 Chrome中如何去除文本/输入框周围的边框(轮廓)? 应用于 "v-textfield v-widget" CSS?