如何Slant/Skew只在底部div

How to Slant/Skew only the bottom of the div

我一直在尝试将 Skew/Slant 添加到 div 的底部。我已经取得了一些成功,正如您在我的 JSFiddle 中看到的那样,我已经设法应用了倾斜,但它并不完全是我想要的。

https://jsfiddle.net/hcow6kjr/

目前偏斜应用于图像所在 div 的顶部和底部,这种偏斜似乎也应用于图像本身(如果你取消偏斜,你会看到图像稍微旋转回正常)。我想知道是否可以进行以下调整,以及如何进行这些调整...

1 - 仅将偏斜应用于 图像所在的 div 的底部 ,而不是当前的两个。

2 - 不对图像应用倾斜,使图像水平放置(如果有意义的话)。

HTML

<div>
<h1>
<img src="http://www.visiontechautomotive.co.uk/visiontech/wordpress/wp-content/uploads/2016/08/visiontech-hero-test-1.jpg">
</h1>
</div>

CSS

div {
  background-image: green;
  height: 700px;
  padding: 20px;
  margin-top: 100px;
  -webkit-transform: skewY(-2deg);
  -moz-transform: skewY(-2deg);
  -ms-transform: skewY(-2deg);
  -o-transform: skewY(-2deg);
  transform: skewY(-2deg);
  overflow:hidden;
}

提前致谢。

通过添加 transform : skewY(2deg); 使 <img> 与 div 相反。这只会扭曲图像的底部。

CSS

img {
  -webkit-transform: skewY(2deg);
  -moz-transform: skewY(2deg);
  -ms-transform: skewY(2deg);
  -o-transform: skewY(2deg);
  transform: skewY(2deg);
}

结果

JSFiddle

作为替代方案,(如果知道您希望偏斜下的部分的颜色)您可以使用 "after" 伪 class 选择器以一定角度覆盖图像的一部分。 这是一个示例,您将不得不修改数字以使其看起来像您喜欢的样子,但总体思路就在那里。

<div class="background"></div>


.background{
    background-image:url('banner.jpg');
    background-size: cover;
    background-position: center;
    height: 460px;
    width: 100%;
    position: relative;
    overflow: hidden;
}
.background:after{
    content: '';
    background-color: #fff;
    display: block;
    width: 120%;
    height: 109px;
    left: 0;
    position: absolute;
    right: 0;
    bottom: -47px;
    transform: rotate(-4deg);
}

example of what mine looked like