4 回答

TA貢獻14條經(jīng)驗 獲得超3個贊
position:absolute;這個是相對body的,margin-left:-200px; ?margin-top:-100px是減去DIV盒子自身高度一半和寬度的一半,不然它top:50%,left:50%; 之后,你有沒有想過此時他的bottom和right的邊距是否也都是50%? ?答案肯定是不是,如果上下左右都50%的話 ?你的盒子的寬度高度就必須為0。,你要把盒子的寬度和高度考慮進去。

TA貢獻3條經(jīng)驗 獲得超1個贊
你的效果是div居中的。由于你的position設(shè)置絕對與body,top與left各50%,所以居中的是div的左上角。又由于width:400px,那么就要向左移動一半,即margin-left:-200px;,又由于height:200px,那么就要向上移動一半,即margin-top:-100px,這樣div就居中了

TA貢獻3593條經(jīng)驗 獲得超0個贊

TA貢獻222條經(jīng)驗 獲得超80個贊
原理:絕對定位的元素定義的top、right、bottom、left等值是元素自身的邊界到最近的已定位的祖先元素的距離,這個元素自身的邊界指的就是margin定義的邊界,所以,如果margin為正的時候,那它的邊界是向外擴的,如果margin為負的時候,則它的邊界是向里收的。
前提是你知道需要居中的元素的寬高,然后將margin-left、margin-top的絕對值分別設(shè)為寬高的一半;所以你也能明白你代碼中元素width:400px;height:200px,margin-left:-200px; ?margin-top:-100px的原因了。
添加回答
舉報