表格式化
在css中,内部表元素生成矩形框,这些框有内容,内边距和边框,但是没有外边距。
给定表格列中所有单元格宽度相等,给定表格行中所有单元格高度相等。
表显示值
css将其表模型定义为“以行为主”,而列是从单元格行的布局中推导出来的。依次类推
css中列和列组只能接受4种样式:border、background、width和visibility
表中内容对齐可以采用text-align和vertical-align
匿名表
CSS定义了一种机制,将遗漏的组件作为匿名对象插入。比如我写了一个table,但是其中只有两个td,那么我们到底应该把这两个元素看成是一列还是一行呢?这里css就会自动插入匿名的对象来保证正确地解释这两个td。
详细插入规则如下:
如果table-cell元素的父元素不是table-row元素,则插入匿名table-row对象
如果table-row元素的父元素不是table、inline-table或table-row-group元素,则插入匿名table元素
如果table-column元素父元素不是table、inline-table或table-row-group元素,则插入匿名table元素
如果table-row-group、table-header-group、table-footer-group、table-column-group或table-caption的父元素不是table元素,则插入匿名table元素
如果table元素或inline-table元素的子元素不是table-row-group、table-header-group、table-footer-group、table-column-group或table-caption,则插入匿名table-row元素
如果table-row-group、table-header-group、table-footer-group元素的子元素不是table-row元素,则插入匿名table-row元素
如果table-row元素的子元素不是table-cell元素,则插入匿名tabel-cell元素
表格层
如果我们定义第一行为蓝色,定义第一列为红色,那么第一行的第一列是什么颜色呢?css定义了6个层,很好地解决了这个问题。表各个方面的样式都在其各自的层上绘制。默认地,所有元素背景都是透明的。最后谁的层在上面就显示谁的样式。
表标题(caption-side)
可以指定表格标题的位置
表单元格边框
表边框(border-collapse)
选择边框是否被合并
表边框距离(border-spacing)
设置相邻单元格的边框间的距离(仅用于”边框分离”模式)。
表空单元处理(empty-cells)
是否显示表格中的空单元格(仅用于”分离边框”模式)。
表边框合并
如果两个或者或者多个边框相邻,他们会相互合并,总有一个边框会胜出。他们合并有如下规则
- 如果某个边框的border-style:hidden,那么它最优先被隐藏。
- border-style的默认值是none,它代表最不容易被隐藏
- 若果至少有一个边框的border-style不是none,并且不是所有的边框都是hidden的话,则越窄的边框约容易被隐藏。并按照double > solid > dashed > dotted > ridge > outset > groove > inset这样的优先级来隐藏。
- 若果样式和宽度都一样,按照颜色cell > row > row group > column > column group > table这样的优先级来隐藏
表大小(table-layout)
设置表的大小是由内容决定还是表格宽度和列宽度决定
固定布局
列宽由表格宽度和列宽度设定。
自动布局
列宽度由单元格内容设定。
高度
对齐
水平对齐:text-align
垂直对齐:vertical-align