css右外边距失效问题解释以及解决办法

浏览器默认从左往右渲染元素,在没有超出父容器的宽度的前提下 如果子容器的宽度能够被容纳 设置margin-right是没有用的

解释

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .box-wrapper {
            display: flex;
            width: 500px;
            height: 500px;
            background-color: orange;
            /* overflow: hidden; */
        }
        .box{
            width: 200px;
            height: 200px;
 
            margin: 0 auto;
            /*当父元素水平空间不足,设置右外边距失效,优先保证左外边距*/
            margin-right: -300px;
        }
        .box-1{
            background-color: pink;
        }
 
 
    </style>
</head>
<body>
 
<div class="box-wrapper">
    <div class="box box-1"></div>
</div>
 
<script type="text/javascript">
</script>
</body>
</html>

不生效
在这里插入图片描述
生效

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .box-wrapper {
            display: flex;
            width: 500px;
            height: 500px;
            background-color: orange;
            /* overflow: hidden; */
        }
        .box{
            width: 200px;
            height: 200px;
 
            margin: 0 auto;
            /*当父元素水平空间不足,设置右外边距失效,优先保证左外边距*/
            margin: 0 200px;
        }
        .box-1{
            background-color: pink;
        }
 
 
    </style>
</head>
<body>
 
<div class="box-wrapper">
    <div class="box box-1"></div>
</div>
 
<script type="text/javascript">
</script>
</body>
</html>

在这里插入图片描述

解决办法在元素外面再套一层div,display设置flex

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .box-wrapper {
            display: flex;
            width: 500px;
            height: 500px;
            background-color: orange;
            /* overflow: hidden; */
        }
        .box{
            width: 200px;
            height: 200px;
 
            margin: 0 auto;
            /*当父元素水平空间不足,设置右外边距失效,优先保证左外边距*/
            margin-right: -200px;
        }
        .box-1{
            background-color: pink;
        }
 
 
    </style>
</head>
<body>
 
<div class="box-wrapper">
    <div class="box box-1"></div>
</div>
 
<script type="text/javascript">
</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勇敢*牛牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值