web开发中,三角形的日常应用,以三角形指示箭头最为常见,其用CSS来实现非常简单,熟悉了之后相比于引入SVG或是背景图片会是更好更灵活的选择。

而三角箭头一般而言,又分为两种,一种是视觉上没有边框的,我们叫做实心三角形;还有一种是视觉上有边框的,而三角箭头刨去边框的部分又要与主体元素的背景颜色一致,我们叫做空心三角形。

言归正传,讲一下怎样实现的。

首先,讲一下三角形的实现原理,熟悉的同学可以跳过这一步。

三角形实现原理

三角形的实现原理是宽高都不设置(即为0),只设置边框,如果四个边框都设置宽度(border-width)、样式(border-style)和颜色(border-color),效果如图:

上面是四个边框border-width一样时的效果,其实border-width是可以自己根据需求来变化的,如下图效果:

上面看到的都是四个三角形,其实想实现单个的三角形只需把其他三个三角形的border-color设置为透明色transparent就可以了(2017年还用考虑IE6吗)。

这样就实现三角形了。

实心三角形箭头

实心三角形的原理就是一个三角形绝对定位到主体元素边界处并连接起来。

为了语义化,我们用单标签,三角形用伪类来实现。

把三角形颜色换成和主体元素一致的背景色就可以了。如下图:

空心三角箭头

空心三角形的原理就是一个边框颜色的三角形绝对定位到主体元素边界处并连接起来,然后另一个主体元素背景色的三角形绝对定位并覆盖到第一个三角形上面,关键的一点是第二个三角形相较于第一个三角形定位上偏移的距离应等于边框宽度。

说得可能比较晦涩,看效果图会更清楚明白(为了区分显示,第一个三角形用的粉色,第二个白色)

把第一个三角形颜色换成边框颜色,第二个三角形颜色换成背景颜色就可以了。

为了语义化,我们使用单标签,两个三角形用before和after伪类来实现,因为after伪元素会覆盖before伪元素,所以after伪元素就是第二个三角形。

第二个三角形定位的偏移距离

这是比较容易被忽略的一点!

为了视觉效果,也为了用户体验,我们应该将三角箭头的边框宽度和主体元素的边框宽度保持一致。

一般可能会有同学认为第二个三角形的偏移值和主体元素边框宽度一样,其实是不对的。

第二个三角形相较于第一个三角形的偏移值其实应该是主体元素边框宽度的"根号2"倍,约为1.414,为了方便可以按1.4倍计算。

下图是原理图:

假设主体元素边框宽度为6px,所以第二个三角形相较于第一个三角形的偏移量应为6px*1.4 = 8.4px

CSS实现空心三角指示箭头原理相关推荐

  1. CSS实现空心三角指示箭头

    web开发中,三角形的日常应用,以三角形指示箭头最为常见,其用CSS来实现非常简单,熟悉了之后相比于引入SVG或是背景图片会是更好更灵活的选择. 而三角箭头一般而言,又分为两种,一种是视觉上没有边框的 ...

  2. CSS3实现空心、实心三角指示箭头(利用正方形的旋转实现)

    (一)两个正方形重叠时,高度偏移量的实现原理 请参考:两个三角形重叠时,高度偏移量的实现原理点击打开链接 (二)实心三角形(视觉上没有边框) (1)HTML结构 <div class=" ...

  3. css空心三角形_纯CSS制作空心三角形和实心三角形及其实现原理

    纯CSS制作空心三角形和实心三角形及其实现原理 在一次项目中需要使用到空心三角形,我瞬间懵逼了.查阅了一些资料加上自己的分析思考,终于是达到了效果,个人感觉制作三角形是使用频率很高的,因此记录下来,供 ...

  4. html上下箭头动态效果,使用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果...

    有时侯页面很长,需要指示箭头告诉用户下面还有东西.可以用纯CSS的方法实现. HTML:添加一个链接,可修改锚点点击时滑动到指定位置,这里使用了Bootstrap 3.x版本的一个向下箭头作为图标. ...

  5. html怎么做向下的图标,用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果

    有时侯页面很长,需要指示箭头告诉用户下面还有东西.可以用纯CSS的方法实现. HTML:添加一个链接,可修改锚点点击时滑动到指定位置,这里使用了Bootstrap 3.x版本的一个向下箭头作为图标. ...

  6. css 让图标上下跳,使用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果

    有时侯页面很长,需要指示箭头告诉用户下面还有东西.可以用纯CSS的方法实现. HTML:添加一个链接,可修改锚点点击时滑动到指定位置,这里使用了Bootstrap 3.x版本的一个向下箭头作为图标. ...

  7. css竖向箭头符号_用css制作空心箭头(上下左右各个方向均有)

    css制作空心的上下左右的箭头 *{padding:0;margin:0; }.box{width:100px;height:500px;margin:0 auto;border:1px solid ...

  8. css空心图形,css画空心箭头

    css画空心箭头 .hot-point-title { width: 30px; height: 38px; border:1px solid #999; position: relative; } ...

  9. html空心三角形这么编码,css空心三角的三种实现方式

    在做如算上处定面一这我作问汇u应色会进灯样近页面的时候经常会用到空心三角,这里总结一下我所知道的空心三角的三种功一新说讲为其年次供.发了架人据模制理个通似会业文告个了者到作会也转动和矿大一效实现方法. ...

  10. [css] CSS画一个三角形,CSS绘制空心三角形

    1.不同理解的边框 <div class="border"></div> .border {width: 50px;height: 50px;border: ...

最新文章

  1. 交互式多模型_DeepFaceLab824版 Avatar换头模型尝鲜!
  2. 年薪50万,副职级别!注册安全工程师的前途如此光明?
  3. Gym 环境汇总 (无mojoco版)
  4. 【安全漏洞】一次前台任意文件下载漏洞挖掘
  5. Qt QML页面翻转控件封装
  6. 如何使用 TRACERT 解决 Windows 中的 TCP/IP 问题
  7. C++面试题-青蛙跳台阶的2种解法
  8. java 语法 —— 数组
  9. 天气暖和了,我却感冒了
  10. python网易云_使用Python实现下载网易云音乐的高清MV
  11. john5(john5和曼森的关系)
  12. 贪心算法——皇后游戏(洛谷P2123)
  13. Presenting view controllers on detached view controllers is discouraged的解决方案
  14. 非常有用的制作logo的网站
  15. UE4-地形植被自动分布方法
  16. 鲁大师2021年度手机报告:5大“最强”手机揭晓,还有最流畅UI
  17. Android学习笔记——APP页面转换与Intent学习
  18. AWS云计算专业术语认证必备
  19. 狂神说docker(最全笔记)
  20. 中国移动支付报告:领跑全球 前景广阔

热门文章

  1. Cisco Packet Tracer安装
  2. 云服务器上行带宽/下行带宽/出网带宽/入网带宽详解(一看就懂)
  3. wordpress 菜单_如何在WordPress主题中添加菜单说明
  4. 飞机大战(简单版)(C/C++) (VS)
  5. 中科院ICTCLAS分词汉语词性标记集
  6. 浅谈无人值守改造技术在矿山供电系统的应用研究
  7. BZOJ3787 gty的文艺妹子序列 【树状数组】【分块】
  8. QT+Opencv配置+问题:During startup program exited with code 0xc0000135.
  9. shell打开wifi命令_shell WIFI
  10. 论文下载哪家强 | caj 官网软件下载