我正在尝试放置一个背景颜色形状,例如在我的网站背景上旋转一个大div,但问题是当我将这个背景放置在我想要的位置时,它会为我创建一个很大的右边和底部边距(因为我为放置背景而创建的 div 的末尾)
这是我所做的:
.fill-2{
position: absolute;
top: 45%;
width: 100%;
z-index: -2;
background-color: #A08823;
opacity: 30%;
height: 200vh;
-moz-transform: rotate(20deg);
-webkit-transform: rotate(20deg);
-o-transform: rotate(20deg);
-ms-transform: rotate(20deg);
transform: rotate(20deg);
}
<body>
<div class="fill-1"></div>
<div class="container">
<!-- my content -->
</div>
<div class="fill-2"></div>
</body>
问题有点不清楚,但这里有一些提示: 绝对定位(背景)元素应该是主元素的 child 元素。然后,您可以将
position: relative;
、overflow: hidden;
以及可选的固定 height
应用于主元素(在下面的示例中为 .container
),这将隐藏超出主元素的背景部分:
.fill-2 {
position: absolute;
top: 45%;
width: 100%;
z-index: -2;
background-color: #A08823;
opacity: 30%;
height: 200vh;
-moz-transform: rotate(20deg);
-webkit-transform: rotate(20deg);
-o-transform: rotate(20deg);
-ms-transform: rotate(20deg);
transform: rotate(20deg);
}
.container {
height: 300px;
position: relative;
overflow: hidden;
}
<body>
<div class="fill-1"></div>
<div class="container">
<!-- my content -->
<div class="fill-2"></div>
</div>
</body>
如果“大边距”是指形状延伸到视口上并且出现滚动条,那么您应该在父元素上设置
overflow: hidden;
,在您的情况下为 <body>
,如下所示:
.fill-2 {
position: absolute;
top: 45%;
width: 100%;
z-index: -2;
background-color: #a08823;
opacity: 30%;
height: 200vh;
-moz-transform: rotate(20deg);
-webkit-transform: rotate(20deg);
-o-transform: rotate(20deg);
-ms-transform: rotate(20deg);
transform: rotate(20deg);
}
body {
overflow-x: hidden;
}
<body>
<div class="fill-1"></div>
<div class="container">
<!-- my content -->
</div>
<div class="fill-2"></div>
</body>
添加溢出:隐藏; 我希望这会起作用! 干杯!