亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么要寫margin:-50px 0 0 -50px;直接寫margin:-50px;結果是一樣的呀?

(或者說,為什么bottom:50%;決定了margin-bottom:-50px有顯示而margin-top:-50px沒顯示<其他方向也一樣>)

(方便起見,代碼已附在下方:)


注:圖片中注釋掉的部分代表沒顯示出來的。以防萬一,您也可以在下面的的代碼中自己嘗試一下。如有矛盾,請發截圖告知,多謝。

http://img1.sycdn.imooc.com//5f131743000191f010110811.jpg

http://img1.sycdn.imooc.com//5f1317430001f00c11070813.jpg

http://img1.sycdn.imooc.com//5f1317430001c8a009600822.jpg

http://img1.sycdn.imooc.com//5f1317440001c2fd09460811.jpg

<!DOCTYPE html>
<html>

<head>
??? <meta charset="UTF-8">
??? <title>已知寬高實現盒子水平垂直居中</title>
?<div class="box">
???? <div class="one">one</div>
???? <div class="two">two</div>
???? <div class="three">three</div>
???? <div class="four">four</div>
</div>

<style>
.box {
??? width: 200px;
??? height: 200px;
??? border: 1px black solid;
??? position:relative;
}
.box div {
??? width: 100px;
??? height: 100px;
??? position:absolute;
}
.one{
?? ?border: 1px red solid;
?? ?top:50%;
?? ?right:50%;
?? ?margin-top:-50px;
?? ?margin-right:-50px;
?? ?margin-bottom:-50px;
?? ?margin-left:-50px;
}
.two{
?? ?border: 1px blue solid;
?? ?top:50%;
?? ?left:50%;
?? ?margin-top:-50px;
?? ?margin-right:-50px;
?? ?margin-bottom:-50px;
?? ?margin-left:-50px;
}
.three{
?? ?border: 1px orange solid;
?? ?bottom:50%;
?? ?right:50%;
?? ?margin-top:-50px;
?? ?margin-right:-50px;
?? ?margin-bottom:-50px;
?? ?margin-left:-50px;
}
.four{
?? ?border: 1px green solid;
?? ?bottom:50%;
?? ?left:50%;
?? ?margin-top:-50px;
?? ?margin-right:-50px;
?? ?margin-bottom:-50px;
?? ?margin-left:-50px;
}

</style>

</html>

正在回答

3 回答

思考了下樓主的問題,發現我可以理解另兩邊設成50px或其他任何正數,負px沒能理解。雖然不知道為什么,但是情況就是有兩邊的值完全不需要關心。蹲一個解答~

0 回復 有任何疑惑可以回復我~

.box{width: 300px;height: 150px;},好像沒不同,問題還是存在(代碼如下:)?

<!DOCTYPE html>
<html>

<head>
??? <meta charset="UTF-8">
??? <title>已知寬高實現盒子水平垂直居中</title>
?<div class="box">
???? <div class="one">one</div>
???? <div class="two">two</div>
???? <div class="three">three</div>
???? <div class="four">four</div>
</div>

<style>
.box {
??? width: 300px;
??? height: 150px;
??? border: 1px black solid;
??? position:relative;
}
.box div {
??? width: 100px;
??? height: 100px;
??? position:absolute;
}
.one{
??? border: 1px red solid;
??? top:50%;
??? right:50%;
??? /*margin-top:-50px;*/
??? /*margin-right:-50px;*/
??? margin-bottom:-50px;
??? margin-left:-50px;
}
.two{
??? border: 1px blue solid;
??? top:50%;
??? left:50%;
??? margin-top:-50px;
??? margin-right:-50px;
??? margin-bottom:-50px;
??? margin-left:-50px;
}
.three{
??? border: 1px orange solid;
??? bottom:50%;
??? right:50%;
??? margin-top:-50px;
??? margin-right:-50px;
??? margin-bottom:-50px;
??? margin-left:-50px;
}
.four{
??? border: 1px green solid;
??? bottom:50%;
??? left:50%;
??? margin-top:-50px;
??? margin-right:-50px;
??? margin-bottom:-50px;
??? margin-left:-50px;
}

</style>

</html>

http://img1.sycdn.imooc.com//5f13ae2b0001f9fe11670657.jpg

http://img1.sycdn.imooc.com//5f13ae2c0001f82511580660.jpg


0 回復 有任何疑惑可以回復我~

我看了一下你的代碼,你的這個問題應該是和你的box和div的大小有關系,你這個很湊巧的是,box是200px寬,div是100px寬,在div距box四周任意位置50px或者是50%的時候,div在box中正好是居中,div左邊距box是50,然后div是100,div右邊距box也是50,加起來剛好是box的寬。你把div或者是box這兩個隨便改一個寬高應該就能看出來區別了。我不知道我的解釋是不是清楚,不明白的可以繼續問。

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么要寫margin:-50px 0 0 -50px;直接寫margin:-50px;結果是一樣的呀?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號