在Vaadin中,我正在将HTML写入RichTextArea中,如下所示:
Java:
RichTextArea area = new RichTextArea();
StringBuffer buf = new StringBuffer();
buf.append("<h1 class=\"previewPerson;\" style=\"text-align: right;\">" +
profile.getPersonName() + "</h1>\n");
//...
area.setValue(buf.toString());
SCSS(mystyle.scss):
.previewPerson {
color: $v-focus-color;
font: $v-font-family;
}
“ previewPerson”类在styles.css中显示为
.mystyle .previewPerson {
color: red;
font: Comic Sans;
}
...并且该类显示在我的检查器中,但没有任何效果。内联样式确实有效果。
我希望在可能的情况下在.scss文件中识别此样式,因为我不希望在StringBuffer中编写内部样式。我尝试了
addStyleName("previewPerson")
,但无法使其正常工作。 最佳答案
尝试在addStylename("previewPerson")
处进行其他破解。您需要做的是将组件的样式名称添加到scss类。
因此,您的Java将如下所示:
RichTextArea area = new RichTextArea();
area.addStyleName("previewPerson");
area.setValue(profile.getPersonName());
您的SCSS是这样的:
.v-richtextarea-previewPerson {
text-align: right;
color: $v-focus-color;
font: $v-font-family;
}
另外,请注意RichTextArea,因为您可能允许跨站点脚本。确保您的用户输入为properly sanitized。
关于java - Vaadin:识别HTML添加的CSS类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50026183/