我正在尝试在网格中对齐网格单元格的内容(1,4)。每个单元格都包含一个ListBox。我将CSS应用于每一列,然而我可以调整宽度,我无法将ListBoxes对齐在中心。即使我直接在它们上面应用CSS而不是单元格,ListBox也不会移动到单元格的中心。 !重要的是什么都不改变。可能有什么不对?以下是相关代码:
Grid mYGrid = new Grid(1, 4);
mYGrid.addStyleName("mYgrid");
mYGrid.getCellFormatter().setWidth(0, 0, "150");
mYGrid.getCellFormatter().setWidth(0, 3, "150");
mYGrid.setWidget(0, 1, getMonthsList() );
mYGrid.setWidget(0, 2, getYearsList() );
mYGrid.getColumnFormatter().setStyleName(1,"monthsCell");
mYGrid.getColumnFormatter().setStyleName(2,"yearsCell");
CSS:
.monthsCell{
width:200px;
margin-left: auto;
margin-right: auto;
}
.yearsCell{
width:200px;
margin-left: auto !important;
margin-right: auto !important;
}
答案 0 :(得分:12)
CellFormatter类setHorizontalAlignment()
和setVerticalAlignment()
中有方法:
Grid grid = new Grid();
HTMLTable.CellFormatter formatter = grid.getCellFormatter();
formatter.setHorizontalAlignment(0, 0, HasHorizontalAlignment.ALIGN_CENTER);
formatter.setVerticalAlignment(0, 0, HasVerticalAlignment.ALIGN_MIDDLE);
在您的css中替换该方法setVerticalAlignment()
使用:vertical-align:middle;
并setHorizontalAlignment()
使用td align attribute