Skip to content

css实现图片剪裁

Posted on:December 3, 2017 at 08:10 PM

也许,你会遇到这样的情况,UI给你一张图片,然而根据实际情况,比如需要适配XXX手机,或者需要把图片形状搞好看一点,会让前端人员进行图片剪裁工作。

现在我们就已这个例子来对图片进行剪裁

html代码如下

  <div class="img-container">
      <img src="./黑人问号.jpg" alt="黑人问号"/>
  </div>

css代码如下

  .img-container {
      width: 300px;
  }
  .img-container img {
      width: 100%;
  }

图片下面进行剪裁

现在的需求是这样的:原来尺寸是width为300px,height为300px的图片。 黑人问号.jpg

现在要把图片下面剪裁100px

黑人问号下.png

只需要将css改为

 .img-container {
    width: 300px;
    height: 200px;
    overflow: hidden;
 }
.img-container img {
    width: 100%;
 }

具体思想就是:把img容器的高度设置成需要的高度,然后设置overflow:hidden就可以了。

图片上面进行剪裁

比如我们把上面剪裁100px,变成这样

黑人问号上.png

css代码只需要改为:

  .img-container {
     width: 300px;
   }
  .img-container img {
     width: 100%;
     margin-top: -100px;
  }

上下都剪裁

比如把上下都剪裁50px 效果如下: 黑人问号上下.png

思路:首先我们知道上下剪裁50px,那么原来高300px,现在只有200px,如果直接设置200px,就跟第一个例子一样,把下面剪裁了100px,根据上一个例子的思路,我们如果设置img的margin-top为负的,既可以把图片位置向上移。所以现在css代码如下:

  .img-container {
     width: 300px;
     height: 200px;
     overflow: hidden;
  }
  .img-container img {
     width: 100%;
     margin-top: -50px;
  }

当然学会了上下剪裁,左右剪裁都是类似的思路。

圆形剪裁

这种一般用于圆形头像 黑人问号圆.png

思路:首先把container的width和height设置成宽高一样,然后设置img的 border-radius为容器宽高的一半就可以了

css代码:

  .img-container {
     width: 300px;
     height: 300px;
  }
  .img-container img {
     width: 100%;
     border-radius: 150px;
  }