解开各种多个倾斜图像的末端

时间:2018-03-15 00:04:36

标签: html css css3 css-transforms

我之前问question这个问题如何扭曲各种各样的图像。我得到了非常令人满意的结果

enter image description here

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

我已经尝试了几个这样的方法几个小时,我似乎没有运气改变box1box6让一边扭曲而不扭曲图像。

1 个答案:

答案 0 :(得分:0)

您可以为最后一个和第一个使用负边距隐藏元素的一半:

&#13;
&#13;
.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;
&#13;
&#13;