盒模型宽度的计算
普通盒模型
默认盒子属性:box-sizing:content-box;
width只包含内容宽度,不包含border和padding
offsetWidth =(width padding border),margin
width和height属性只会应用到这个元素的内容区
box-sizing:content–box;//定义引擎如何计算元素的总高度和总宽度
- content-box默认值,元素的width/height不包含padding,border,与标准盒子模型表现一致
- border-box元素的width/height包含padding,border,与怪异盒子模型表现一致
- inherit指定box-sizing属性的值,应该从父元素继承
怪异盒模型
设置语句:box-sizing:border-box;
offsetWidth=width(padding和border都挤压到内容里面)
width和height包括内容区、padding和border,不算margin
margin纵向重叠
margin负值问题
BFC
float
元素居中
样式单位
两栏布局
左边宽度固定,右边宽度自适应。
- 利用flex布局,将左边元素设置为固定宽度200px,将右边的元素设置为flex:1
- 利用浮动。左边元素宽度设置为200px,且设置向左浮动。右边元素的margin-left设置为200px,宽度设置为auto
(默认为auto,撑满整个父元素)。margin-left/padding-left/calc - 利用浮动。左边元素宽度固定,设置向左浮动。右侧元素设置overflow:hidden;这样右边就触发了BFC,BFC
的区域不会与浮动元素发生重叠,所以两侧就不会发生重叠。float+overflow:hidden - 左列左浮动,将自身高度塌陷,使得其它块级元素可以和它占据同一行位置
- 右列利用自身流特性占满整行
- 右列设置overflow,触发BFC特性,使自身和左列浮动元素隔开,不沾满整行
- 绝对定位父级相对定位左边absolute定位,宽度固定。设置右边margin-left为左边元素的宽度值。
- 绝对定位,父级元素相对定位。左边元素宽度固定,右边元素absolute定位,left为宽度大小,其余方向为0。(有
歧义,谨慎使用) - 使用calc计算
1
2
3
4
5
6
7
8
9.left
display:inline-block;
width:240px;
}
right
display:inline-block;
width:calc(100%-240px);
}
//使用calc()函数计算<div>元素的宽度 - grid