html中的“position:absolute”是絕對定位,一般配合“top”和“left”屬性同時使用。
1、新建html文檔,在body標簽中添加一個div,然后在這個div中再添加一個div,這時默認情況下內div在外div的左上角:
2、為內div添加“position”屬性,屬性值為“absolute”,外div添加“position”屬性,屬性值為“relative”,這時內div會向外div絕對定位:
3、為內div設置距離頂部距離屬性“top”和距離左側屬性“left”,這時內div會向外div做指定距離的定位:
1、“position:absolute”是絕對定位的意思,單純的使用absolute屬性並不會其效果,需要配合“top bottom left right ”屬性才能看到效果。首先需要新建一個html文件,這里定義了10個換行符,換行符的下面定義一個div:
2、此時保存文件,打開瀏覽器可以看到div在瀏覽器的下方位置,接下來來設置絕對定位,讓div顯示在任意位置:
3、給divc的class使用absolute屬性, 並使用上下左右位置屬性,設置向上和向左分別50px,接着保存文件:
4、再次打開瀏覽器,可以看到div的位置在瀏覽器上方,覆蓋了換行符的位置:
position:absolute
日常開發中經常涉及元素的定位,我們都知道,絕對定位相對於最近position不為static的父級元素來定位,但其中定位的位置還是有細微的差別的。
絕對定位根據left和top屬性來規定絕對定位元素的位置。
但這個位置實際上與padding和父級相對定位的box-sizing有關的。
* 默認盒子的box-sizing為content-box(即盒子所占據的寬度=width+padding)
情況一: 正常盒模型box-sizing:content-box; 同時沒有top和left的情況

上圖:盒模型,在left和top沒有定義時,相對於父級定位元素的content(內容區width)定位
情況二: 正常盒模型box-sizing:content-box; 規定top和left的值

效果圖:

上圖:在定義了top和left屬性時,相對於父級元素的占位區定位(包含padding區域)
情況三:盒模型box-sizing:border-box; 沒有top和left的值

情況四:盒模型box-sizing:border-box; 同時規定top和left的值
綜上所述:
無論父級盒子是正常顯示還是以border-box顯示,在沒有規定left和top的屬性值時,都呈現在父級盒子的內容區(不包含padding)左上角
若規定了left:0;top:0;則統一相對父級盒子的左上角顯示(包含padding)







