在一个设置了padding的div里设置oveflow:hidden
之后,内容超出了div之后,超出的内容会在padding里面显示。。。我想要做的是超出之后超出的内容会被限制在padding之内
在一个设置了padding的div里设置oveflow:hidden
之后,内容超出了div之后,超出的内容会在padding里面显示。。。我想要做的是超出之后超出的内容会被限制在padding之内
如果是文字内容的话,暂时只能在父容器内在嵌套一个容器并在容器上 overflow:hidden
。
如果是背景图片的话,可以在父容器添加样式 background-clip:content-box
。
我想到的一个解决办法是加上一个中间层,因为padding
是算盒子内容的,所以加上一个中间层,把中间层宽高撑满父容器,然后中间层设置溢出隐藏overflow:hidden
就行了
演示代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
.center {
display: flex;
align-items: center;
justify-content: center;
}
.outer {
padding: 40px;
width: 200px;
height: 200px;
background-color: yellow;
}
.wrapper {
width: 100%;
height: 100%;
overflow: hidden;
}
.inner {
width: 100px;
height: 100px;
background-color: red;
animation: move linear 3s infinite;
}
@keyframes move {
from {
transform: translateX(150%);
}
to {
transform: translateX(0);
}
}
</style>
</head>
<body>
<div class="outer center">
<div class="wrapper center">
<div class="inner"></div>
</div>
</div>
</body>
</html>
3 回答1k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
2 回答950 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答922 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
overflow: hidden; 可以使子元素溢出父元素外后隐藏。
padding 是内边距,是元素的一部分,所以溢出到 padding 里不属于溢出父元素,overflow 就不会使之隐藏。