display: table-cell;表示什么

display: table-cell;表示什么,第1张

一、display:table-cell属性简述

display:table-cell属性指让标签元素以表格单元格的形式呈现,类似于td标签。目前IE8+以及其他现代浏览器都是支持此属性

的,但是IE6/7只能对你说sorry了,这一事实也是大大制约了display:table-cell属性在实际项目中的应用。

我们都知道,单元格有一些比较特别的属性,例如元素的垂直居中对齐,关联伸缩等,所以display:table-cell还是有不少潜在的使用价

值的,虽说IE6/7不支持此属性,但是幸运的是,IE6/7一些乱糟糟的属性与渲染,我们可以其他方法实现同样或是类似的效果。

与其他一些display属性类似,table-cell同样会被其他一些CSS属性破坏,例如float,

position:absolute,所以,在使用display:table-cell与float:left或是position:absolute

属性尽量不用同用。设置了display:table-cell的元素对宽度高度敏感,对margin值无反应,响应padding属性,基本上就是活脱

脱的一个td标签元素了。

二、display:table-cell与大小不固定元素的垂直居中

使用display:table-cell让大小不固定元素垂直居中已经是很老的方法了,关于此应用,我已经在“大小不固定的图片、多行文字的水平垂直居中”这篇文章中有过介绍。

方便阅读,这里再次展示下代码:

/*这里的大小是根据高宽上限128像素图片设置的*/

div{display:table-cellwidth:1emheight:1emborder:1px solid #beceebfont-size:144pxtext-align:centervertical-align:middle}

div img{vertical-align:middle}

在 Java 中,可以使用 TableCellRenderer 和 TableCellEditor 接口来设置表格单元格的格式。

其中,TableCellRenderer 用于设置单元格在表格中的展示效果,而 TableCellEditor 则用于设置单元格在被编辑时的效果。这两个接口都有一个方法 getTableCellRendererComponent() 或 getTableCellEditorComponent(),可以通过这些方法设置单元格的样式、字体、颜色等属性。

具体实现时,需要自定义一个类,实现 TableCellRenderer 或 TableCellEditor 接口,并重写其方法来进行单元格样式的设置。然后将该类对象赋给要设置的表格单元格即可。例如:

class MyCellRenderer

implements TableCellRenderer {

public Component getTableCellRendererComponent(JTable table, Object value,

boolean isSelected, boolean hasFocus, int row, int column) {

Component c = DefaultTableCellRenderer.getTableCellRendererComponent(table, value,

isSelected, hasFocus, row, column)// 调用默认渲染器

c.setBackground(Color.YELLOW)// 设置背景色为黄色

return c

}

}

// 使用 MyCellRenderer 对象对表格第二列进行单元格样式设置

table.getColumnModel().getColumn(1).setCellRenderer(new MyCellRenderer())

上述代码中,自定义了一个 MyCellRenderer 类,并实现了 TableCellRenderer 接口中的 getTableCellRendererComponent() 方法来设置单元格样式。最后,使用 table.getColumnModel().getColumn(columnIndex).setCellRenderer(renderer) 来将 MyCellRenderer 对象应用到相应的表格列中。

ie7和ie6都不能识别 display: table-cell(但是支持display: block等css1的属性!)

ie8以及以后版本可以识别!

ie7和ie6能识别vertical-align:middle

如果盒模型中间只有几段文字的话,设置line-height就可以实现居中显示了!

如果要实现盒模型中的div居中,可以参考以下代码:

div#wrap {

display: table

border: 1px solid #FF0099

background-color: #FFCCFF

width: 760px

height: 400px

*position: relative

overflow: hidden

}

div#subwrap {

vertical-align: middle

display: table-cell

*position: absolute

*top: 50%

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11273419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存