方法一

先旋转整体,再把图片反向旋转,放大

  1. .picture {
  2. width: 400px;
  3. transform: rotate(45deg);
  4. overflow: hidden;
  5. }
  6. .picture > img {
  7. max-width: 100%;
  8. transform: rotate(-45deg) scale(1.42);
  9. }

方法二

使用clip-path属性

  1. clip-path: circle(40%); /* 高度的40%为半径 */

image.png

  1. clip-path: ellipse(20px 40px at 30% 10%); /* 水平半径 垂直半径 水平位置 垂直位置 */

image.png

  1. clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); /* 水平位置 垂直位置 */

image.png

制作动画

  1. img {
  2. max-width: 200px;
  3. clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  4. transition: 1s clip-path;
  5. }
  6. img:hover {
  7. clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  8. }

1.gif