如何在偏斜层(CSS)中扭曲背景图像?

前端之家收集整理的这篇文章主要介绍了如何在偏斜层(CSS)中扭曲背景图像?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试显示像这样的个人资料照片/ – /(斜线表示使用skewX的斜线,连字符表示水平对齐的背景图像).

问题是这段代码也会扭曲背景图像:

  1. .photo {
  2. transform: skewX(35deg);
  3. -ms-transform: skewX(35deg); /* IE 9 */
  4. -webkit-transform: skewX(35deg); /* Safari and Chrome */
  5. width: 100px;
  6. height: 92px;
  7. border-right: 1px solid black;
  8. border-left: 1px solid black;
  9. background-image: url('silhouette.png');
  10. background-repeat: no-repeat;
  11. background-position: top left;
  12. }
  13.  
  14. ...
  15.  
  16. <div class="photo"></div>

我试图像这样扭转背景偏斜:

  1. .photo {
  2. transform: skewX(35deg);
  3. -ms-transform: skewX(35deg); /* IE 9 */
  4. -webkit-transform: skewX(35deg); /* Safari and Chrome */
  5. width: 100px;
  6. height: 92px;
  7. border-right: 1px solid black;
  8. border-left: 1px solid black;
  9. }
  10.  
  11. .photo div {
  12. transform: skewX(-35deg);
  13. -ms-transform: skewX(-35deg); /* IE 9 */
  14. -webkit-transform: skewX(-35deg); /* Safari and Chrome */
  15. width: 100%;
  16. height: 100%;
  17. background-image: url('silhouette.png');
  18. background-repeat: no-repeat;
  19. background-position: top left;
  20. }
  21.  
  22. ...
  23.  
  24. <div class="photo"><div></div></div>

…但我得到/ [ – ] /(背景不适合斜面).

我整天都在这,请你能帮助我吗?我有编码器的笨蛋!

解决方法

我宁愿使用一个持有背景图像的伪元素.解决方案的关键是使用transform-origin:

Example

  1. .photo {
  2. transform: skewX(35deg);
  3. -ms-transform: skewX(35deg); /* IE 9 */
  4. -webkit-transform: skewX(35deg); /* Safari and Chrome */
  5. width: 100px;
  6. height: 92px;
  7. border-right: 1px solid black;
  8. border-left: 1px solid black;
  9.  
  10. /* new styles */
  11. position: relative;
  12. overflow: hidden;
  13. -webkit-transform-origin: top left;
  14. -ms-transform-origin: top left;
  15. transform-origin: top left;
  16. }
  17.  
  18. .photo::before {
  19. content: "";
  20. transform: skewX(-35deg);
  21. -ms-transform: skewX(-35deg); /* IE 9 */
  22. -webkit-transform: skewX(-35deg); /* Safari and Chrome */
  23. background-image: url('http://placekitten.com/200/200');
  24. background-repeat: no-repeat;
  25. background-position: top left;
  26.  
  27. /* new styles */
  28. position: absolute;
  29. -webkit-transform-origin: top left;
  30. -ms-transform-origin: top left;
  31. transform-origin: top left;
  32. width: 1000%; /* something ridiculously big */
  33. height: 1000%; /* something ridiculously big */
  34. }

猜你在找的CSS相关文章