gpt4 book ai didi

html - 梯形截面,剪切背景图像

转载 作者:行者123 更新时间:2023-11-28 00:07:03 25 4
gpt4 key购买 nike

我正在尝试创建一个具有梯形形状的Web布局,如图像所示。另外,每个部分都有一个background-image,用cover或类似结果填充背景。

我仅使用skew和两个div就实现了第一部分(深蓝色),如下所示。

但是,我无法创建以下部分,它在两种方法上存在偏差。我尝试使用clip-path没有运气。然后,最后一节需要重新整理。

的HTML

<section id="my_section">
<div id="my_section_bg"></div>
<div id="my_section_content">
<!-- any typical content, text/images here -->
</div>
</section>


的CSS

#my_section {
padding-top: 80px;
padding-bottom: 90px;

background-color: rgba(74,90,119,.5);

transform: skewY(-4deg);
}

#my_section_bg {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;

background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-image: linear-gradient(
to bottom,
rgba(29,44,71,.85) 0%,
rgba(29,44,71,1) 100%
), url("./assets/my_bg_img.jpeg");
background-color: rgba(29,44,71,1);

transform: skewY(8deg);
}

#my_section_content {
transform: skewY(4deg);
}


Desired section design

最佳答案

您可以简单地将第二个倾斜部分的一部分隐藏在第一个倾斜部分的下方,以创建此效果。上一节相同:

这是一个基本示例:



.box {
min-height:250px;
position:relative;
overflow:hidden;
transform-origin:left; /*this will do the magic*/
max-width:1000px;
margin:auto;
}
.box:before {
content:"";
position:absolute;
top:-100px;
left:0;
right:0;
bottom:-100px;
transform-origin:left;
background:var(--img,red) center/cover;
}

.first {
transform:skewY(5deg);
z-index:2;
--img:url(https://picsum.photos/800/600?image=0)
}
.first:before {
transform:skewY(-5deg);
}

.second {
transform:skewY(-5deg);
z-index:1;
--img:url(https://picsum.photos/800/600?image=1069)
}
.second:before {
transform:skewY(5deg);
}

.last {
--img:url(https://picsum.photos/800/600?image=1053);
margin-top:-100px;
}

<div class="first box">

</div>
<div class="second box">

</div>

<div class="last box">

</div>





或者使用 clip-path,您可以像下面那样操作(在任意位置调整 50px来控制角度)



.box {
min-height:250px;
position:relative;
overflow:hidden;
max-width:1000px;
margin:auto;
}
.first {
clip-path:polygon(0 0,100% 50px, 100% 100%,0 100%);
background:url(https://picsum.photos/800/600?image=0) center/cover;
}

.second {
clip-path:polygon(0 50px,100% 0, 100% 100%,0 calc(100% - 50px));
z-index:1;
margin:-50px auto;
background:url(https://picsum.photos/800/600?image=1069) center/cover;
}

.last {
background:url(https://picsum.photos/800/600?image=1053) center/cover;
}

<div class="first box">
</div>
<div class="second box">
</div>
<div class="last box">
</div>

关于html - 梯形截面,剪切背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55639933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com