1

我在 Google 网络应用程序中创建了一个网格。我希望让网格达到 (0px, 0px) 的大小,但我得到了 (12px, 0px),因为网格内的每一列似乎无缘无故地增加了 4px 的宽度。

这是对网格所做的(一次全部):

  1. 网格的宽度设置为“0px”
  2. 网格的高度设置为“0px”
  3. 网格内单元格的宽度分别设置为“0px”
  4. 网格内单元格的高度分别设置为“0px”
  5. 网格的行高设置为“0px”
  6. 网格内单元格的行高分别设置为“0px”
  7. 网格的填充设置为“0px”
  8. 网格内单元格的填充分别设置为“0px”
  9. 在网格上调用了函数“.setCellSpacing(0)”。
  10. 在网格上调用了函数“.setCellPadding(0)”。

*注意:网格及其内部的单元格均未使用边框或边距。

这是一些代码,您可以尝试看看我在说什么。

function doGet() {
  var app = UiApp.createApplication();

  var grid = app.createGrid(3,3);

  //Used outlines since they don't affect the size of the object
  grid.setStyleAttribute("outline-style","solid");
  grid.setStyleAttribute("outline-width","1px");
  grid.setStyleAttribute("outline-color","red");

  grid.setCellPadding(0);
  grid.setCellSpacing(0);
  grid.setStyleAttribute("width","0px");
  grid.setStyleAttribute("height","0px");
  grid.setStyleAttribute("line-height","0px");
  grid.setStyleAttribute("padding","0px");
  for(var x = 0; x<3; x++){
    for(var y = 0; y<3; y++){
      grid.setStyleAttribute(y,x,"width","0px");
      grid.setStyleAttribute(y,x,"height","0px");
      grid.setStyleAttribute(y,x,"line-height","0px");
      grid.setStyleAttribute(y,x,"padding","0px");
    }
  }

  app.add(grid);

  app.add(app.createLabel("^ The grid is right here. It's width is non-zero for some reason"));

  return app;
}
4

1 回答 1

2

这里有两个问题:

  1. 单元格会自动填充&nbsp;,因此需要清除(删除 3 * 3px),并且

  2. webkit 有一个错误,它为设置为零宽度的单元格留下有效的 1px 宽度,这意味着您唯一可以选择低于 3px 的单元格设置为 display:none

尝试将这些行添加到您的循环中:

grid.setStyleAttribute(y,x,"display","none");
grid.setText(y, x, "")
于 2013-10-13T11:30:27.970 回答