视口的尺寸仅受到浏览器可视窗口大小的影响,和内容无关
每个元素都有一个包含块,它是指元素在页面中摆放的位置。
注:html的包含块是初始化包含块(initial containing block)
通常情况下,元素的包含块是他父元素的内容盒(content-box)
注:当定位体系发生变化时包含块就不同了
当浮动元素被设置为绝对定位,属于绝对定位,float属性被强制设置为none。
绝对定位元素不会对其他任何元素造成影响。
绝对定位元素的位置可通过left、top、right、bottom来设置 (偏移量的设置)
position:fixed; 起始位置是视口的左上角
适用场景:pc页面头部 移动端footer 广告 侧边栏 目录 回到顶部 即时通讯
绝对位置寻找包含块:包含我,理我最近元素的position的值不等于默认值(static)
适用场景:20个及以上的标签需要重叠在一起的时候
有效的范围:相对、绝对、固定位置
默认值为0
取值范围:正值、负值(数字越大越靠上,数字越小越靠下)
无法继承
不浮动:none 浮动定位:左浮动、右浮动
浮动的初衷是实现文字环绕。
子级浮动,父元素高度塌陷。
浮动脱离文档,常规流盒子的自动高度计算时,无视浮动盒子--高度坍塌
1.属性名clear left right both(缺点需要在html写一个空标签)
对最后一个子元素使用clear:both使用,可防止父元素高度坍塌。
起始位置:标签原位置的左上角。
相对位置,是指相对于盒子在原本定位体系下的位置
将盒子的position属性设置为relative,以启动相对位置(不可继承)
属性 | 常规流 | 浮动/绝对定位 |
---|---|---|
margin-left:auto | 尽量撑满包含块 | 0px |
margin-right:auto | 尽量撑满包含块 | 0px |
margin-top:auto | 0px | 0px |
margin-bottom:auto | 0px | 0px |
width:auto | 尽量撑满包含块 | 适应内容高度 |
height:auto | 适应内容高度 | 适应内容高度 |
元素默认状态下都是常规流定位
如果不行,则强行将margin-right设置为auto
margin为auto:0px‘
height为auto:适应内容的高度
1.浮动盒子在摆放时,要避开常规流盒子
2.常规流盒子在摆放时,无视浮动盒子。
尺寸是包含尺寸的百分比-%
height的百分比是包含块高度的百分比(很少用)
尺寸受到定位体系的影响
不同的定位体系,auto的计算规则不同
px、em:取设置的值
%:根据包含块的尺寸据算
auto:按照不同定位体系的规则计算
盒模型=盒子尺寸 定位体系=盒子位置
盒子在包含块的垂直方向上依次摆放。
依次摆放:按照html元素书写方式顺序从上到下摆放
触发外边距合并条件,垂直两个外边距之间没有padding、border、content
外边距合并规则:
1.相同值,取一个。
2.都是正值取最大。
3.都是负值取最小。
4.一正一负则相加。
overflow:hidden防止合并
原文:https://www.cnblogs.com/gaoliang54264/p/14858599.html