java - GWT:更改树行的填充?

标签 java css gwt tree

GWT 树大致如下所示:

<div class="gwt-Tree">
    <div style="padding-top: 3px; padding-right: 3px;
                padding-bottom: 3px; margin-left: 0px;
                padding-left: 23px;">
         <div style="display:inline;" class="gwt-TreeItem">
              <table>
                   ...
              </table>
         </div>
    </div>
    <div ...>
    </div>
    ...
</div> 

我的问题是:我应该如何更改单个树行的填充?我想我可以按照为 .gwt-Tree > div 设置 CSS 规则做一些事情,但这似乎很老套。有没有更优雅的方式?


解决方案:显然没有更优雅的方法。这是我们所做的,FWIW:

 .gwt-Tree > div:first-child { 
      width: 0px !important; 
      height: 0px !important; 
      margin: 0px !important; 
      padding: 0px !important; 
 } 

 .gwt-Tree > div {
      padding: 0px 5px !important;
 }

 .gwt-Tree > div[hidefocus=true] {
      width: 0px !important;
      height: 0px !important;

      margin: 0px !important;
      padding: 0px !important;
 }

最佳答案

我遇到了同样的问题,也尝试过用 CSS 解决它,但没有成功。 最后我设法改变了 java 代码中的顶部和底部填充:

/**
    * handle top and bottom padding issue of leafs the grandparent DOM element (div) has disturbing top and bottom
    * padding of 3px, which is changed here to 0px
    * 
    * @param uiObject
    *           uiObject which is a leaf in the tree
    */
   private static void correctStyle(final UIObject uiObject) {
      if (uiObject instanceof TreeItem) {
         if (uiObject != null && uiObject.getElement() != null) {
            Element element = uiObject.getElement();
            element.getStyle().setPaddingBottom(0, Unit.PX);
            element.getStyle().setPaddingTop(0, Unit.PX);
         }
      } else {
         if (uiObject != null && uiObject.getElement() != null && uiObject.getElement().getParentElement() != null
               && uiObject.getElement().getParentElement().getParentElement() != null
               && uiObject.getElement().getParentElement().getParentElement().getStyle() != null) {
            Element element = uiObject.getElement().getParentElement().getParentElement();
            element.getStyle().setPaddingBottom(0, Unit.PX);
            element.getStyle().setPaddingTop(0, Unit.PX);
         }
      }
   }

我在代码中使用了这样的方法:

Anchor fileDownloadLink = new Anchor();
fileDownloadLink.setStyleName(ViewConstants.STYLE_LINK_FILE_DOWNLOAD);
fileDownloadLink.setText(subSubStructure.getName());
fileDownloadLink.setHref(ViewConstants.HREF_DOWNLOAD_FILE_EXTRACTED_DATA + subSubStructure.getPath());
treeItem.addItem(fileDownloadLink);
StyleCorrector.correctStyle(fileDownloadLink);

关于java - GWT:更改树行的填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492431/

相关文章:

java - 不兼容类型 : java. lang.String 无法转换为 boolean 值

html - 切换到移动尺寸时如何隐藏 DIV?

gwt - 无法使用 Eclipse 的 GWT 插件创建 HTML 页面

java - 我必须在 GWT 项目中更改什么才能使其成为 "module"

带有首字母缩略词的 Java 命名约定

java - 如何将 cookie 的值放入 <c :set> from JSTL? 类型的变量中

java - 生成的 Google Protocol Buffer 类有未使用的字段并且超过 2000 行

html - 使用 bootstrap 4 更改我的横幅背景图像透明度

javascript - 自定义 JQuery 滚动条插件

gwt - 注入(inject) EventBus GWT