加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

如何实现以 CSS 三角形箭头的效果为基础的排列组合

发布时间:2023-09-06 13:53:20 所属栏目:语言 来源:
导读:  这篇文章给大家分享的是基于CSS边框怎样做三角形箭头的效果。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
  这篇文章给大家分享的是基于CSS边框怎样做三角形箭头的效果。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
 
  一、CSS盒子模型
 
  盒子包括:margin、border、padding、content
 
  边框交界处呈现平滑的斜线,利用此特点,通过设置各边框宽度和颜色可以得到小三角等。
 
  div元素是块级元素,显示为块框,可以利用它来具体实现。
 
  <div class="triangle "></div>
 
  <div class="arrow"></div>
 
  **例1、**一般设置高度、宽度及边框后,盒子呈现如下图:
 
  .triangle {
 
     width: 25px;  
 
     height: 25px;  
 
     overflow: hidden;
 
     font-size: 0;
 
     line-height: 0;            
 
     border-width: 50px;               
 
     border-style: solid;
 
     border-color: rgb(235, 54, 241) rgb(86, 245, 139) rgb(76, 0, 255) rgb(46, 205, 245);
 
  }
 
  注:设置overflow、font-size、line-height,是因为在IE6下会具有默认的字体大小和行高, 导致盒子呈现被撑开的长矩形。
 
  例2、将例1中的宽度和高度设置为0后,盒子呈现如下图:

  .triangle {
 
    width: 0;  
 
    height: 0;  
 
    overflow: hidden;
 
    font-size: 0;
 
    line-height: 0;            
 
    border-width: 50px;               
 
    border-style: solid;
 
    border-color: rgb(235, 54, 241) rgb(86, 245, 139) rgb(76, 0, 255) rgb(46, 205, 245);
 
  }
 
  此时,可以看到盒子是由四个三角形组成的。如果只保留一种颜色, 将其他3种颜色设置为透明或与背景同色, 就能实现三角形。根据选择留下不同位置的边,可以呈现出不同朝向的三角形。
 
  例3、只保留底边

  .triangle {
 
     width: 0;  
 
     height: 0;  
 
     overflow: hidden;
 
     font-size: 0;
 
     line-height: 0;            
 
     border-width: 50px;               
 
     border-style: solid;
 
     border-color: transparent transparent rgb(76, 0, 255) transparent;
 
  }
 
  例4:在例3中的宽度和高度保留,可以得到梯形
 
  width: 0;  
 
  height: 0;
 
  例5、实现箭头
 
  箭头其实是通过2个三角形错位叠加来实现的。
 
  用错开1px的白色三角形覆盖蓝色三角形,形成箭头。
 
  下面的样式实现了一个向上箭头:
 
 
 
  . arrow {
 
     position: absolute;
 
  }
 
  . arrow:before,. arrow:after{
 
     position: absolute;
 
     content: '';
 
     border-top: 10px transparent solid;
 
     border-left: 10px transparent solid;
 
     border-right: 10px transparent solid;
 
     border-bottom: 10px #fff solid;
 
  }
 
  . arrow:before{
 
     border-bottom: 10px #0099CC solid;
 
  }
 
  . arrow:after{
 
     top: 1px; /*覆盖并错开1px*/
 
     border-bottom: 10px #fff solid;
 
  }
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章