当前位置:   article > 正文

css绘制梯形图形,及显示矩形图片_css直角梯形带背景图

css直角梯形带背景图

梯形

div+transform实现如上效果,直接拉到底部。

-webkit-mask-image加上梯形遮罩也可实现。

1.使用border实现。

等腰梯形1.1

  1. .trapezoid1-1 {
  2. width: 100px;
  3. height: 0;
  4. border-bottom: 100px solid black;
  5. border-right: 50px solid transparent;
  6. border-left: 50px solid transparent;
  7. }

等腰梯形1.2

  1. .trapezoid1-2 {
  2. width: 100px;
  3. height: 0;
  4. border-top: 100px solid black;
  5. border-right: 50px solid transparent;
  6. border-left: 50px solid transparent;
  7. }

等腰梯形1.3

  1. .trapezoid1-3 {
  2. width: 0;
  3. height: 100px;
  4. border-left: 100px solid black;
  5. border-top: 50px solid transparent;
  6. border-bottom: 50px solid transparent;
  7. }

等腰梯形1.4

  1. .trapezoid1-4 {
  2. width: 0;
  3. height: 100px;
  4. border-right: 100px solid black;
  5. border-top: 50px solid transparent;
  6. border-bottom: 50px solid transparent;
  7. }

直角梯形1.5

  1. .rightAngle-trapezoid{
  2. width: 100px;
  3. height: 0;
  4. border-right: 80px solid transparent;
  5. border-bottom: 80px solid red;
  6. }

拓展

  1. .more1-1 {
  2. width: 0;
  3. height: 100px;
  4. border-left: 100px solid black;
  5. border-right: 100px solid black;
  6. border-top: 50px solid transparent;
  7. border-bottom: 50px solid transparent;
  8. }

  1. .more1-2 {
  2. width: 0;
  3. height: 100px;
  4. border-right: 100px solid black;
  5. border-top: 50px solid transparent;
  6. border-bottom: 50px solid transparent;
  7. text-align: center;
  8. color: #fff;
  9. line-height: 100px;
  10. border-radius: 50%;
  11. box-shadow: 10px 10px 16px 10px #9e9e9ec4;
  12. text-shadow: 4px 6px 3px #c0c0c0;
  13. }

发现有趣的图形实在太快乐,止不住想继续探索。

2.transform旋转实现

以div的下边作旋转底,设置视距perspective和围绕x轴旋转角度。

perspective属性用来设置视点位置,视点始终在z轴上。正常情况下,视点和我们眼睛观察的方向一致,所以只有在元素的前方才能看见元素的变化。

  1. .trapezoid2-1 {
  2. position: relative;
  3. width: 100px;
  4. height: 50px;
  5. text-align: center;
  6. line-height: 50px;
  7. color: #fff;
  8. }
  9. .trapezoid2-1:before {
  10. content: "";
  11. position: absolute;
  12. top: 0;
  13. left: 0;
  14. right: 0;
  15. bottom: 0;
  16. z-index: -1;
  17. background-color: #000;
  18. transform-origin: bottom;
  19. transform: perspective(100px) rotateX(30deg);
  20. }

也可以将文字写在伪元素的content中,但是旋转后,字体同样会出现变化。

拓展

当元素同时改变两边位置,就会形成直角梯形。

  1. .more2-1 {
  2. position: relative;
  3. width: 100px;
  4. height: 50px;
  5. text-align: center;
  6. line-height: 50px;
  7. color: #fff;
  8. }
  9. .more2-1:before {
  10. content: "";
  11. position: absolute;
  12. top: 0;
  13. left: 0;
  14. right: 0;
  15. bottom: 0;
  16. z-index: -1;
  17. background-color: #000;
  18. transform-origin: bottom left;
  19. transform: perspective(100px) rotateX(30deg);
  20. }

3.使用倾斜【skew】和超出隐藏【overflow:hidden】切割出梯形。

要注意的是,设置元素转换的基点位置。此处以上窄下宽的等腰梯形为例子,所以以bottom为基准。

html

  1. <div class="skew-elm1">
  2. <div class="skew-elm2">
  3. <div class="con"></div>
  4. <!--<img src="img/1.png">-->
  5. </div>
  6. </div>

css

  1. .skew-elm1{
  2. width: 240px;
  3. height: 250px;
  4. transform-origin: bottom;
  5. transform: skew(8deg, 0deg);
  6. -ms-transform: skew(8deg, 0deg);
  7. -moz-transform: skew(8deg, 0deg);
  8. -webkit-transform: skew(8deg, 0deg);
  9. -o-transform: skew(9deg, 0deg);
  10. overflow: hidden;
  11. border-radius: 0px 10px 20px 0px;
  12. }
  13. .skew-elm2{
  14. width: 240px;
  15. height: 250px;
  16. transform-origin: bottom;
  17. transform: skew(-16deg, 0deg);
  18. -ms-transform: skew(-16deg, 0deg);
  19. -moz-transform: skew(-16deg, 0deg);
  20. -webkit-transform: skew(-16deg, 0deg);
  21. -o-transform: skew(-16deg, 0deg);
  22. overflow: hidden;
  23. border-radius: 10px 0px 0px 20px;
  24. }
  25. .con{
  26. width: 240px;
  27. height: 250px;
  28. background-color: salmon;
  29. }

改变初始转动方向,可以改变梯形的顶部朝向。

此方法可在图片上形成矩形显示框展示图片,在con中添加底图即可。

添加地图后,发现图片并没有摆正,底图需要矫正的角度deg(.con),0=deg(.con)+deg(.skew-elm1)+deg(.skew-elm2)。

  1. .con{
  2. width: 240px;
  3. height: 250px;
  4. background-color: #009688;
  5. transform-origin: bottom;
  6. transform: skew(8deg, 0deg);
  7. -ms-transform: skew(8deg, 0deg);
  8. -moz-transform: skew(8deg, 0deg);
  9. -webkit-transform: skew(8deg, 0deg);
  10. -o-transform: skew(8deg, 0deg);
  11. background-image: url(./img/1.jpg);
  12. }

效果如下

使用-webkit-mask-image加上梯形遮罩实现上诉效果。

html

<div class="trapezoidal-mask"></div>

css【宽高为遮罩大小】

  1. .trapezoidal-mask{
  2. width: 240px;
  3. height: 290px;
  4. -webkit-mask-image: url(img/masking.png);
  5. background-image: url(./img/cs.jpg);
  6. }

原图:                                                            遮罩图如下:                                                                             效果如下:

                                    

css中mark属性

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/150758
推荐阅读
相关标签
  

闽ICP备14008679号