您现在的位置是:首页 > 技术教程 正文

CSS实现三角形的四种方法

admin 阅读: 2024-03-27
后台-插件-广告管理-内容页头部广告(手机)

方法一:使用 border (常见)

【解释】不设置宽高,用边框大小控制三角型大小

【分解步骤】

  1. 设置一个div不设宽高

    【示例】

  1. <style>
  2. #triangle{
  3. width: 0;
  4. height: 0;
  5. border: 100px solid;
  6. border-color: orangered skyblue gold yellowgreen;
  7. }
  8. style>

 

2. 设置透明

  • 留下想要指向方向相反的边框设定,其他方向的边框设为transparent透明

【示例】实现指向向上的三角形

  1. <style>
  2. .Up{
  3. width: 0;
  4. height: 0;
  5. border-top: 100px solid transparent;
  6. border-right: 100px solid transparent;
  7. border-left: 100px solid transparent;
  8. border-bottom: 100px solid orangered;
  9. }
  10. style>

【效果图】指向上,指向下,指向左,指向右

 

如何设置不同的三角形

  • 可以通过调整不同方向边框的值来实现不同方向和大小的三角形

方法二:使用 linear-gradient

【解释】两色渐变,调为实色,一色透明

【分解步骤】

  1. 两色渐变
  1. <style>
  2. .first{
  3. background: linear-gradient(45deg, deeppink, yellowgreen);
  4. }
  5. style>
  1. 调为实色
  1. <style>
  2. .second{
  3. background: linear-gradient(45deg, deeppink, deeppink 50%, yellowgreen 50%, yellowgreen 100%);
  4. }
  5. style>
  1. 一色透明
  1. <style>
  2. .second{
  3. background: linear-gradient(45deg, deeppink, deeppink 50%, transparent 50%, transparent 100%);
  4. }
  5. style>

【效果图】

 

如何设置不同的三角形

  • 通过旋转 rotate 或者 scale,也能得到各种角度,不同大小的三角形

方法三:使用 clip-path

【解释】裁剪多边型的方式,创建元素的可显示区域。区域内的部分显示,区域外的隐藏。

【示例】

  1. <style>
  2. div{
  3. width: 100px;
  4. height: 100px;
  5. background: gold;
  6. clip-path: polygon(0 0, 0 100%, 100% 100%);
  7. }
  8. style>

clip-path:

  • polygon(x1 y1,x2 y2,x3 y3);

了解更多clip-path属性

【效果图】

 

如何设置不同的三角形

  • 可以借助CSS clip-path maker

方法四:利用字符

三角形形状的字符的十进制 Unicode 表示码

  1. <div class="one"> div>
  2. <div class="two"> div>
  3. <div class="three"> div>
  4. <div class="four"> div>
  5. <div class="five"> div>

 

【注意】用font-size控制大小,用color控制颜色

空心三角形如何实现:

 当div元素嵌套时可设置出空心三角形或是带三角形的气泡框。实例如下:

 

实现的核心思想
空心三角形

同样是使用三角形,加上伪类选择器before或after。before或after里设计一个三角形,其中一个背景颜色与环境颜色相同(一般为白色),用白色的三角形掩盖住另一个三角形即可达到三角形空心的目的。

注意:掩盖过程一般使用定位,容器设置为相对定位(不脱离文档流),三角形设置绝对定位。通过top,left,bottom,right调整位置即可。

这时为了达到掩盖效果,应使用z-index设置使背景色三角形能够掩盖另一个三角形。

带三角形的气泡框

本例实际可拆分为一个盒子和一个空心三角形。这时可同时设置before和after。各自设置好边框组成三角形相互掩盖即可达到效果。

气泡框:

  1. html>
  2. <html lang="zn-ch">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>CSDN测试-实现带三角形的气泡框title>
  8. <style>
  9. .div{
  10. width:300px;
  11. height:300px;
  12. border: 10px solid #0082df;
  13. position: relative;
  14. }
  15. .div::after{
  16. content: "";
  17. position: absolute;
  18. right:60px;
  19. top:300px;
  20. width:0px;
  21. height:0px;
  22. border:30px solid transparent;
  23. border-top: 30px solid #0082df;
  24. }
  25. .div::before{
  26. content: "";
  27. position: absolute;
  28. top:295px;
  29. left:180px;
  30. z-index: 1;
  31. width:0px;
  32. height: 0px;
  33. border: 30px solid transparent;
  34. border-top:30px solid #fff;
  35. }
  36. style>
  37. head>
  38. <body>
  39. <div class="div">
  40. div>
  41. body>
  42. html>

空心三角形:

  1. html>
  2. <html lang="zn-ch">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>CSDN测试专用-实现空心三角形title>
  8. <style>
  9. .div{
  10. width:0px;
  11. height:0px;
  12. border: 100px solid transparent;
  13. border-bottom-color: #0082df;
  14. position: relative;
  15. }
  16. .div::after{
  17. content: "";
  18. position: absolute;
  19. right:-100px;
  20. top:-80px;
  21. width:0px;
  22. height:0px;
  23. border:100px solid transparent;
  24. border-bottom-color: #fff ;
  25. z-index: 2;
  26. }
  27. style>
  28. head>
  29. <body>
  30. <div class="div">
  31. div>
  32. body>
  33. html>

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索