4 回答

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

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

TA貢獻(xiàn)3593條經(jīng)驗(yàn) 獲得超1個(gè)贊

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