CSS3的一个非常酷的特性是允许我们创建各种规则和不规则形状的图形,从而可以减少图片的使用。

以前只能在Photoshop等图像编辑软件中制作的复杂图形现在使用CSS3就可以完成了。

通过使用新的CSS属性,像transformborder-radius,我们可以创建非常漂亮和复杂的图形效果。

首先是圆形 这个用的是比较常见的也很简单。

要使用CSS来制作一个圆形,我们需要一个div,给它设置一个ID。

圆形在设置CSS时要设置宽度和高度相等,然后设置border-radius属性为宽度或高度的一半就可以了。

代码如下:

  1. <div id="circle"></div>
  1. #circle {
  2. width: 120px;
  3. height: 120px;
  4. background: #7fee1d;
  5. -moz-border-radius: 60px;
  6. -webkit-border-radius: 60px;
  7. border-radius: 60px;
  8. }

椭圆形是正圆形的一个变体,同样使用一个带ID的div来制作。

设置椭圆形的CSS时,高度要设置为宽度的一半,border-radius属性也要做相应的改变。

代码如下:

  1. #oval {
  2. width: 200px;
  3. height: 100px;
  4. background: #e9337c;
  5. -webkit-border-radius: 100px / 50px;
  6. -moz-border-radius: 100px / 50px;
  7. border-radius: 100px / 50px;
  8. }

要创建一个CSS三角形,需要使用border,通过设置不同边的透明效果,我们可以制作出三角形的现状。

另外,在制作三角形时,宽度和高度要设置为0。

代码如下:

  1. <div id="triangle"></div>
  1. #triangle {
  2. width: 0;
  3. height: 0;
  4. border-bottom: 140px solid #fcf921;
  5. border-left: 70px solid transparent;
  6. border-right: 70px solid transparent;
  7. }

与正三角形不同的是,倒三角形要设置的是border-topborder-leftborder-right三条边的属性。

代码如下:

  1. #triangle {
  2. width: 0;
  3. height: 0;
  4. border-top: 140px solid #20a3bf;
  5. border-left: 70px solid transparent;
  6. border-right: 70px solid transparent;
  7. }

左三角形操作的是border-topborder-leftborder-right三条边的属性,其中上边和下边要设置透明属性。

代码如下:

  1. #triangle_left {
  2. width: 0;
  3. height: 0;
  4. border-top: 70px solid transparent;
  5. border-right: 140px solid #6bbf20;
  6. border-bottom: 70px solid transparent;
  7. }

右三角形操作的是border-bottomborder-leftborder-right三条边的属性,其中上边和下边要设置透明属性。

代码如下:

  1. #triangle_right {
  2. width: 0;
  3. height: 0;
  4. border-top: 70px solid transparent;
  5. border-left: 140px solid #ff5a00;
  6. border-bottom: 70px solid transparent;
  7. }

制作菱形的方法有很多种。这里使用的是transform属性和rotate相结合,使两个正反三角形上下显示。

代码如下:

  1. #diamond {
  2. width: 120px;
  3. height: 120px;
  4. background: #1eff00;
  5. /* Rotate */
  6. -webkit-transform: rotate(-45deg);
  7. -moz-transform: rotate(-45deg);
  8. -ms-transform: rotate(-45deg);
  9. -o-transform: rotate(-45deg);
  10. transform: rotate(-45deg);
  11. /* Rotate Origin */
  12. -webkit-transform-origin: 0 100%;
  13. -moz-transform-origin: 0 100%;
  14. -ms-transform-origin: 0 100%;
  15. -o-transform-origin: 0 100%;
  16. transform-origin: 0 100%;
  17. margin: 60px 0 10px 310px;
  18. }

梯形是三角形的一个变体,设置CSS梯形时,左右两条边设置为相等,并且给它设置一个宽度。

代码如下:

  1. #trapezium {
  2. height: 0;
  3. width: 120px;
  4. border-bottom: 120px solid #ec3504;
  5. border-left: 60px solid transparent;
  6. border-right: 60px solid transparent;
  7. }

平行四边形的制作方式是使用transform属性使长方形倾斜一个角度。

代码如下:

  1. #parallelogram {
  2. width: 160px;
  3. height: 100px;
  4. background: #8734f7;
  5. -webkit-transform: skew(30deg);
  6. -moz-transform: skew(30deg);
  7. -o-transform: skew(30deg);
  8. transform: skew(30deg);
  9. }

星形的HTML结构同样使用一个带ID的空div

星形的实现方式比较复杂,主要是使用transform属性来旋转不同的边。仔细体会下面的代码。

代码如下:

  1. #star {
  2. width: 0;
  3. height: 0;
  4. margin: 50px 0;
  5. color: #fc2e5a;
  6. position: relative;
  7. display: block;
  8. border-right: 100px solid transparent;
  9. border-bottom: 70px solid #fc2e5a;
  10. border-left: 100px solid transparent;
  11. -moz-transform: rotate(35deg);
  12. -webkit-transform: rotate(35deg);
  13. -ms-transform: rotate(35deg);
  14. -o-transform: rotate(35deg);
  15. }
  16. #star:before {
  17. height: 0;
  18. width: 0;
  19. position: absolute;
  20. display: block;
  21. top: -45px;
  22. left: -65px;
  23. border-bottom: 80px solid #fc2e5a;
  24. border-left: 30px solid transparent;
  25. border-right: 30px solid transparent;
  26. content: '';
  27. -webkit-transform: rotate(-35deg);
  28. -moz-transform: rotate(-35deg);
  29. -ms-transform: rotate(-35deg);
  30. -o-transform: rotate(-35deg);
  31. }
  32. #star:after {
  33. content: '';
  34. width: 0;
  35. height: 0;
  36. position: absolute;
  37. display: block;
  38. top: 3px;
  39. left: -105px;
  40. color: #fc2e5a;
  41. border-right: 100px solid transparent;
  42. border-bottom: 70px solid #fc2e5a;
  43. border-left: 100px solid transparent;
  44. -webkit-transform: rotate(-70deg);
  45. -moz-transform: rotate(-70deg);
  46. -ms-transform: rotate(-70deg);
  47. -o-transform: rotate(-70deg);
  48. }

和五角星的制作方法不同,六角星形状的制作方法是操纵border属性来制作两半图形,然后合并它们。

代码如下:

  1. #star_six_points {
  2. width: 0;
  3. height: 0;
  4. display: block;
  5. position: absolute;
  6. border-left: 50px solid transparent;
  7. border-right: 50px solid transparent;
  8. border-bottom: 100px solid #de34f7;
  9. margin: 10px auto;
  10. }
  11. #star_six_points:after {
  12. content: "";
  13. width: 0;
  14. height: 0;
  15. position: absolute;
  16. border-left: 50px solid transparent;
  17. border-right: 50px solid transparent;
  18. border-top: 100px solid #de34f7;
  19. margin: 30px 0 0 -50px;
  20. }

创建CSS五边形需要结合两个图形:一个梯形,然后在它的上面放一个三角形,共同组成一个五边形。

代码如下:

  1. #pentagon {
  2. width: 54px;
  3. position: relative;
  4. border-width: 50px 18px 0;
  5. border-style: solid;
  6. border-color: #277bab transparent;
  7. }
  8. #pentagon:before {
  9. content: "";
  10. height: 0;
  11. width: 0;
  12. position: absolute;
  13. top: -85px;
  14. left: -18px;
  15. border-width: 0 45px 35px;
  16. border-style: solid;
  17. border-color: transparent transparent #277bab;
  18. }

 

 

 

 

 

#diamond {
    width: 120px;
    height: 120px;
    background: #1eff00;
/* Rotate */
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
/* Rotate Origin */
    -webkit-transform-origin: 0 100%;
    -moz-transform-origin: 0 100%;
    -ms-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    margin: 60px 0 10px 310px;
}                     

版权声明:本文为yztdd99原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yztdd99/p/13354277.html