css中为什么margin-right不管用?

<!DOCTYPE html>

<html lang="ch">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

     *{

         margin: 0;

         padding: 0;

     }

       .kuai{

             width: 200px;

             height: 200px;

             border: red solid 1px;

              

             position: absolute;

             right: 0;

             left: 0;

             top:0;

             bottom:0;

             margin: auto;

            

       }

     

          .cirle2{   

         width: 200px;

         height: 200px;

         border: red solid 1px;

         border-radius: 50%; 

           position: absolute;   

           top:50%;

             left: 50%;

             transform:translate(-50%,-50%);

              margin-right: 50%; 

     }  

      

    </style>

 

</head>

<body>

   <div class="kuai">

           <div class="cirle2"></div>

   </div>

</body>

</html>

首先指出你的问题:

一般都是子级元素用绝对定位,父级元素用相对定位。但你kuai 和 circle都用绝对定位?所以你是想以body为相对定位??

再然后你说margin-right没有起作用,其实起作用了,你打开控制台查看元素,就会看到这个属性并没有被划掉,说明执行了。

为什么没有明显效果,是因为在kuai中你设置了它的margin:auto;且left/right/top/bottom都为0 ,也就是说在kuai的border外都是kuai的margin,circle移动不了,所以你想改变circle的位置要改变绝对定位中的right

 

 margin-right: 50%; 是相对元素右边的移动,要用right: 50%;定位才行
 

     .cirle2 {
        width: 200px;
        height: 200px;
        border: red solid 1px;
        border-radius: 50%;
        position: absolute;
        top:50%;
        right: 50%;
        transform:translate(50%, -50%);
        margin-right: 50%;
    }
 

margin用px单位去调整位置试试

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y