脱标,不占位置
相对于最近的有定位的父元素定位,子绝父相绝固,都是相对于父亲定位,只不过父绝则还要往上找
直到html,如果不加边偏移(也就是没有定位)则以html的content左上角为基点(此时为标准流,自然要在父亲的padding下面),加了(只要写了边偏移就算,0也算)则以padding左上角为基点
如果是到了html,则特殊:
如果用top描述,那么定位参考点就是首屏页面的左上角(如果写了百分比,则也是以首屏页面的大小为基准),而不是浏览器的左上角
滚动时,方块随着一起动,固定在页面的某个位置(left:200px;top:200px)上
如果用bottom描述,那么就是浏览器窗口的首屏(一进去的那个),对应的页面的左下角:
滚动时,方块随着一起动,固定在页面的某个位置(首屏的left:200px;bottom:200px)上
-----------------------------------------分割线----------------------------------------------------
不写边偏移,则该边在父亲的padding后,以父亲content左上角为基点
但如果加了left right top bottom,就以父亲padding左上角为基点
#aa{
width: 100px;
height: 100px;
position: absolute;
background-color: blue;
}
加了边偏移后:百分比是以父亲content+padding算的
#aa{
width: 100px;
height: 100px;
position: absolute;
background-color: blue;
left:0;
top:100%;
}
在CSS3盒模型下:可以看到除了盒子变小,其他都无变化,也就是说盒模型的不同,只能影响占位置大小,其他都影响不了
之前的例子
红盒子以body的content为基点,不看margin+border+padding
此外,由于没给body高度,引起高度塌陷 内容高度=0,但padding,border还在作用 所以又能看到(传统盒子模型实际大小=width/content+padding+border)
C3盒子模型实际大小=width,写多少就是多少,width=content+padding+border
注意:
尽量不要用position来进行定位,虽然能直接把元素移动到浏览器显示区域的任何位置,但是这破坏了网页设计的布局嵌套,而且在浏览器放大或缩小时,元素的位置就乱七八糟。网页布局,还是用margin,padding,float,能不用position就不用position,除非固定定位(position:fixed),或者在点击元素跳出弹窗遮盖其他页面元素只允许在弹窗上操作时(广告,position:absolute)