2

我正在努力在我的应用程序中获得一致的对齐,该应用程序是用 GWT 编写的,并通过基于 WebKit 的 JavaFX 2.2 WebView (Java 7u40) 查看。

我遇到的问题是 JavaFX 中的 CSS 布局属性似乎存在问题/缺乏支持。文档(http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html)说支持 CSS 2.1(包括填充、填充左等)。

文档还声明“ JavaFX CSS 不支持 CSS 布局属性,例如浮动、位置、溢出和宽度。但是,某些 JavaFX 场景图对象支持 CSS 填充和边距属性。

这是我在 Chrome 中运行良好的内容:

.foo-bar-values {
    padding-left:   22px;
}

但这对 WebView 完全没有影响。

以下是我尝试过的其他规则,它们在 Chrome 中都可以正常工作,但在 JavaFX WebView 中无法执行任何操作:

.foo-bar-values {
    padding:    0px 0px 0px 22px;
}    
.foo-bar-values {
    margin: 0px 0px 0px 22px;
}    
.foo-bar-values {
    margin-left:    22px;
}
.foo-bar-values {
    padding-left:   22px;
    -fx-label-padding:  0px 0px 0px 22px;
}    
.foo-bar-values {
    padding-left:   22px;
    -fx-padding:    0px 0px 0px 22px;
}
.foo-bar-values {
    padding-left:   22px;
    \-fx-label-padding: 0px 0px 0px 22px;
}    
.foo-bar-values {
    padding-left:   22px;
    \-fx-padding:   0px 0px 0px 22px;
}

DOM 的结构如下:

<table>
  <colgroup></colgroup>
  <tbody>
    <tr>
      <td></td>
      <td>
        <div class="foo-bar-values">This doesn't pad.</div>
      </td>
    </tr>
  </tbody>
</table>

如何<div>让它在 JavaFX WebView 中正确对齐?

4

1 回答 1

1

显然,我链接的文档(我唯一能找到的关于 JavaFX 中的 CSS 支持)仅适用于普通的 JavaFX 开发,而不适用于 WebView 本身的功能(基于 webkit)。

看起来它padding-left和其他相关的布局属性在 JavaFX WebView 中工作得很好。有一些东西阻止我的 WebView 加载所有 CSS(未知原因)。因此,最后几个值(我需要的)不能用于样式化文档。

我对我的项目进行了一些重大的清理和重建,并擦除了所有临时文件和缓存文件,这个问题“自行消失了”。

我现在可以在 WebView 中看到正确应用的填充,并且可以在 FireBug Lite 中看到它应用:

padding-left    22px

我已经验证该规则在我的 .war 文件中的 app.css 中,因此 GWT 可以正确生成和捆绑内容。JavaFX WebView 端似乎存在问题。

于 2013-11-07T18:02:31.463 回答