为什么设置margin-right:400px不行?

为什么设置margin-right:400px不行?

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    *{
      margin: 0;
      padding:0;
    }
    .test{
     width: 800px;
     height: 100px;
     background: red;
     position:fixed;
     left:50%;
     margin-right:400px;
   }
   .out{
    width: 100%;
    height: 2000px;
    background-color: #abcdef;
  }
</style>
</head>
<body>
  <div class="out">
    <div class="test"></div>
  </div>
</body>
</html>

我看了问答里给的答案是设置margin-left:-400px;不是很明白设置margin为-400的意思,所以我想的是设置margin-right:400;,但是为什么没有效果,两者有什么区别呢?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,margin-right是右外边距,可以理解为下一个兄弟元素的位置是在这个margin-right之后的位置处,这里没有兄弟元素,所以看不出来,可以参考如下例子,给第一个元素设置margin-right值,它的右边有外边距,所以第二个元素的位置是在这个400px之后哦,例:

http://img1.sycdn.imooc.com//climg/5c3d81d90001925c04970555.jpghttp://img1.sycdn.imooc.com//climg/5c3d81d100015fa008440235.jpg

希望能帮助到你,祝学习愉快!

好帮手慕糖 2019-01-15 10:48:03

同学你好,margin-right:400;是设置右外边距为400px。

设置左外边距为负值,是会往左移动的哦。

在定位的情况下,设置left:50%;margin-left:-自身宽度的一半,可以实现水平居中。

原理可以参考下图来理解:

因为先设置了left50%,就是如下的情况,红色div块向右移动了父级的50%,现在div红色块左边框部分所在的位置就是父级的50%处(一半),所以红色块设置margin-left:负的自身的一半,会让红色块本身向左移动自身的一半,这个时候,红色块的一半处以父级的一半处不就正好在同一个位置么,可以测试下,先设置left:50%,看下效果哦。

http://img1.sycdn.imooc.com//climg/5c3d481000017dea18990136.jpg

红色的块如果设置的是800px的话,它的负一半,就应该是-400px哦。

希望能帮助到你,祝学习愉快!

  • 提问者 宝慕林842399 #1
    老师,设置margin-left:-400px;我懂了,但是我还是没有理解为什么设置margin-right:400(或更大的)px;没有效果?
    2019-01-15 14:36:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师