表格
注:
-
个别属性已被废弃,通过css实现
-
表格的列宽度 由当前列里最宽的单元格决定
-
table 表格标签 双标签
-
一个完整的表格由3部分组成
1. 表头 thead标签
2. 内容 tbody标签
3. 表尾 tfoot标签
这三个部分并不都是一个必须所写的标签, 只有tbody,如果不写tbody, 系统甚至会为我们自动添加一个
-
tr,th,td
一个表格是一行一行展示的 行 tr标签
每一行是由一个一个的单元格组成的 td或者th标签
<tr> <td></td> <th></th> </tr>
th和td的区别是:
-
th文字加粗
2. th里的文字默认居中
-
-
table的属性:
1. border 表格的边框 不但控制table还可以控制每个格子的边框
2. cellspacing 控制单元格之间的距离
3. cellpadding 控制单元格内容与边框的距离
-
控制表格合并边框的模式
1. separate 默认值, 边框会分开
2. collapse 边框合并
-
合并单元格, 需要使用到单元格的属性
1. colspan 列合并 横向合并
2. rowspan 行合并 纵向合并
说明: 合并单元格给人感觉上是把两个格子合并到一起, 实际上只是把一个单元格的宽度或者高度 扩大到之前的x倍。 并不是真正的合并两个单元格。
流式布局
-
流式布局: 百分比布局
我们一般会把元素的 width, height, margin, padding值由之前的px数值改写成百分比
1. width相对的是父级的width为参考
2. height相对的是父级的height为参考
3. 任何一个方向的padding相对的是父级的width为参考(与父级的height没有关系)
4. 任何一个方向的margin相对的是父级的width为参考(与父级的height没有关系)
-
百分比布局需要注意的问题
- 不管是块元素还是行元素, 只要不设置高度, 它们的高度都是由内容撑出,如果此时元素的子元素的高度设置了百分比, 而该元素的高度没有确定值, 此时形成了高度的相互依赖, 导致父子元素都无法确认高度
- 如果html标签设置百分比, 那么其相对的父元素是没有的, 那么就参考整个浏览器窗口
- 因为使用了百分比布局之后, 元素的宽高都会随着浏览器窗口的变化而变化。
有些时候大小可能会失控(尺寸过小)
我们可以为元素添加最小宽度或者高度; 最大的宽度或者高度
怪异盒模型
-
box-sizing: 盒模型类型改成怪异盒模型
1. content-box 普通盒模型
2. border-box 怪异盒模型
-
以上两种盒模型的组成部分相同(content, padding, border, margin) 写法相同,区别仅仅是 :
1.盒子大小的计算规则不同
- 主流浏览器的盒模型默认普通盒模型, ie浏览器的盒模型默认是怪异盒模型
-
计算规则:
普通盒模型: 对应方向上的所有有效值 累加
怪异盒模型:
盒子的宽 = width(content的宽 + 左右padding + 左右的border) + 左右的margin
盒子的高 = height(content的高 + 上下padding + 上下的border) + 上下的margin
怪异盒模型下的padding和border回去侵蚀原有的content区域, 导致content区域变小
注: 有些时候元素的总大小确定之后不宜改变(增大), 而在不增大元素大小的情况下, 我们还想添加一些padding或者border, 可以考虑怪异盒模型。