padding-bottom下的内容溢出?

平时没太注意到的一个小细节,话不多说,直接上代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    .box {
        width: 300px;
        height: 200px;
        border: 1px solid #f00;
        padding-bottom: 30px;
        overflow: hidden;
        box-sizing: border-box;
    }

    p {
        margin: 0;
    }
    </style>
</head>

<body>
    <div class="box">
        <p>点击爱看来飞机啊路口附近阿克拉发卡量剪短点击爱看来飞机啊路口附近阿克拉发卡量剪短发开房间啊开房间啊了打法发卡量点击爱看来飞机啊路口附近阿克拉发卡量剪短发开房间啊开房间啊了打法发卡量点击爱看来飞机啊路口附近阿克拉发卡量剪短发开房间啊开房间啊了打法发卡量点击爱看来飞机啊路口附近阿克拉发卡量剪短发开房间啊开房间啊了打法发卡量发开房间啊开房间啊了打法发卡量</p>
    </div>
</body>

</html>

得到的效果图

clipboard.png

为什么.box的padding-bottom不能阻止内容的溢出,导致内容占据了.box的padding-bottom的部分
clipboard.png

阅读 5.9k
4 个回答

因为 padding-bottom 并没有这个作用呀,你想要有 padding 的效果,就得把宽高和 overflow 的限制加载 p 元素上,然后 padding 加在父元素上

因为其内容溢出,并且都是从下方溢出,所以padding-bottom本来就是不能阻止其中内容溢出的。

如果你只是想要p元素不溢出div,你只要给p元素增加一个宽高为百分之百的样式即可

    p {
        margin:0;
        width:100%;
        height:100%;
    }

下面是demo,点击下面的链接

点击我

overflow剪裁的边界是border-box,而非padding-box,所以padding-bottom理论上不具有阻止内容溢出的功能定位

不过,在Chrome浏览器,会发现padding-bottom依然存在。Chrome浏览器对这个解析有自己的一套标准

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题