我之前问question这个问题如何扭曲各种各样的图像。我得到了非常令人满意的结果
CSS
.container {
font-size:0;
height:215px;
margin: 30px 50px;
text-align: center;
color: black;
}
.box1 {
font-size:initial;
width:calc(100% / 6);
height:100%;
border: 3px solid;
box-sizing:border-box;
transform: skew(-25deg);
position: relative;
overflow: hidden;
display:inline-block;
}
.box2 {
font-size:initial;
width:calc(100% / 6);
height:100%;
border: 2.5px solid;
box-sizing:border-box;
transform: skew(-25deg);
position: relative;
overflow: hidden;
display:inline-block;
}
.box3 {
font-size:initial;
width:calc(100% / 6);
height:100%;
border: 2.5px solid;
box-sizing:border-box;
transform: skew(-25deg);
position: relative;
overflow: hidden;
display:inline-block;
}
.box4 {
font-size:initial;
width:calc(100% / 6);
height:100%;
border: 2.5px solid;
box-sizing:border-box;
transform: skew(-25deg);
position: relative;
overflow: hidden;
display:inline-block;
}
.box5 {
font-size:initial;
width:calc(100% / 6);
height:100%;
border: 2.5px solid;
box-sizing:border-box;
transform: skew(-25deg);
position: relative;
overflow: hidden;
display:inline-block;
}
.box6 {
font-size:initial;
width:calc(100% / 6);
height:100%;
border: 2.5px solid;
box-sizing:border-box;
transform: skew(-25deg);
position: relative;
overflow: hidden;
display:inline-block;
}
.box1 span {
position: absolute;
top: 0;
bottom: 0;
left: -100%;
right: -100%;
transform: skew(25deg);
background-position: center;
background-size:cover;
}
.box2 span {
position: absolute;
top: 0;
bottom: 0;
left: -50%;
right: -50%;
transform: skew(25deg);
background-position: center;
background-size:cover;
}
.box3 span {
position: absolute;
top: 0;
bottom: 0;
left: -50%;
right: -50%;
transform: skew(25deg);
background-position: center;
background-size:cover;
}
.box4 span {
position: absolute;
top: 0;
bottom: 0;
left: -35%;
right: -35%;
transform: skew(25deg);
background-position: center;
background-size:cover;
}
.box5 span {
position: absolute;
top: 0;
bottom: 0;
left: -50%;
right: -50%;
transform: skew(25deg);
background-position: center;
background-size:cover;
}
.box6 span {
position: absolute;
top: 0;
bottom: 0;
left: -35%;
right: -35%;
transform: skew(25deg);
background-position: center;
background-size:cover;
}
HTML
<div class="container">
<div class="box1"><span style="background-image:url(illustris1.png)"></span></div>
<div class="box2"><span style="background-image:url(gal.png)"></span></div>
<div class="box3"><span style="background-image:url(laniakea.jpg)"></span> </div>
<div class="box4"><span style="background-image:url(globularstar.jpg)"></span></div>
<div class="box5"><span style="background-image:url(elliptical.jpg)"></span></div>
<div class="box6"><span style="background-image:url(illustris2.png)"></span></div>
<div class="container mid"></div>
</div>
虽然我的这段代码与另一个代码中的答案相比很长,但它允许我为我输入的每张图片调整大小。
我现在要做的是让这个box1
环境的最左端box6
和最右端container
仅在此分类的内部倾斜。这有点像这张海报想要获得的结果:Skew one side only of an element。
我已经尝试了几个这样的方法几个小时,我似乎没有运气改变box1
和box6
让一边扭曲而不扭曲图像。
答案 0 :(得分:0)
您可以为最后一个和第一个使用负边距隐藏元素的一半:
.container {
display: flex;
height: 150px;
margin: 0 30px;
overflow:hidden;
}
.box {
flex: 1;
border: 1px solid;
transform: skew(-25deg);
position: relative;
overflow: hidden;
}
.box:first-child {
margin-left:calc((100% / 5) / -2);
}
.box:last-child {
margin-right:calc((100% / 5) / -2);
}
.box:after {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: -50%;
right: -50%;
transform: skew(25deg);
background-image: var(--i);
background-position: center;
}
&#13;
<div class="container">
<div class="box" style="--i:url(https://lorempixel.com/400/200/)"></div>
<div class="box" style="--i:url(https://lorempixel.com/400/300/)"></div>
<div class="box" style="--i:url(https://lorempixel.com/300/200/)"></div>
<div class="box" style="--i:url(https://lorempixel.com/400/300/)"></div>
<div class="box" style="--i:url(https://lorempixel.com/200/300/)"></div>
</div>
&#13;