0

我正在尝试在应用程序Css中应用正常格式Vaadin 7(我是 Vaadin 的新手),但无法使其正常工作。特别是我想addStyleName()在表格上使用该方法,例如GWT

Table table = new Table("Films");
table.addStyleName("test");

我的问题是我不知道将 .css 文件放在哪里以及如何“注入”它。我已按照Vaadin Book和问题的第一个答案的说明进行操作,但在我的项目中它不起作用。VAADINWebContent 下没有文件夹。我创建了文件夹,并在其中VAADIN/Themes/mytheme创建了文件mytheme.css和 styles.css。我不确定是否需要自定义文件styles.css(可能问题来自于此)。该文件mytheme.css如下所示:

@import "../reindeer/styles.css";

.test{
    margin-left: 100px;
    margin-top: 100px;
    margin-right: 100px;
}   

并且文件styles.css是空的。在应用程序类中,我使用注释:

@Theme("mytheme")
@SuppressWarnings("serial")
public class MyprojectUI extends UI {
...
}

但是它不起作用。不仅没有应用“测试”css 类,而且UI丢失了标准的 css 样式(带有黑色字母的白色页面)。我也收到警告:

Requested resource [/VAADIN/themes/mytheme/styles.css] not found from filesystem or through class loader. Add widgetset and/or theme JAR to your classpath or add files to WebContent/VAADIN folder.
Jun 12, 2013 8:44:44 PM com.vaadin.server.VaadinServlet serveStaticResourcesInVAADIN

好的,它没有找到主题jar。出了什么问题,因为说明没有表明不同的东西。也许

@import "../reindeer/styles.css";

?

更新:这与问题中的问题相同,但我不使用 maven。在这种情况下应该怎么做?

4

2 回答 2

0

您创建了文件夹 VAADIN/themes/mytheme 是对的。在那里创建一个名为 styles.css 的 css 文件并添加@import "../reindeer/legacy-styles.css";

现在您不应该收到“未找到请求的资源”异常。

在您的文件 VAADIN/themes/mytheme/styles.css 中,您可以覆盖或定义新的 css 类。

如果你想给表格添加一个样式名称,比如“myColor”,你必须在你的styles.css中定义它,如下所示:

.v-table-myColor { color: red; }

并将其添加到表中:table.addStyleName("myColor");

有关表格的 CSS 样式规则的更多信息,请点击此处

于 2013-06-12T22:09:58.327 回答
0

我找到了解决方案。在我看来有点奇怪,但是styles.css当有人创建新主题时,该项目总是试图在主题文件夹中找到一个文件。该styles.css文件不应为空,但应导入mytheme.css. 最后的css文件是:

mytheme.css:

@import "../reindeer/legacy-styles.css";
@import "../reindeer/styles.css";

.test{
    margin-top: 10px;
    margin-left: 10px;
}  

样式.css:

@import "mytheme.css";

和文件包含在jar 中legacy-styles.cssstyles.cssvaadin.themes

于 2013-06-12T22:22:59.987 回答