纯CSS实现的箭头
用CSS即可绘制出各种箭头,无需裁剪图片,甚至没有用到CSS3的东西。对浏览器支持良好。
基本原理
原理非常简单,通过截取border(边框)的部分“拐角”实现,几行CSS代码即可理解:
一个梯形
当元素宽、高和边框的宽相近(等)时,改变某一边的颜色可以看到一个梯形;
| 1 2 3 4 5 6 7 8 9 10 | <div id="demo11"></div><style>#demo11{  border:10pxsolid #000;  border-left-color:#f00;  width:10px;  height:10px;}</style> | 
一个三角形
当元素宽、高为零,且其他边为透明颜色时,可以形一个三角形。
| 1 2 3 4 5 6 7 8 9 10 | <div id="demo12"></div><style>#demo12{  border:10pxsolid #000;  border-left-color:#f00;  width:0;  height:0;}</style> | 
任意角度的三角形
改变各个边的宽度,即通过调整“边框”厚度可以配置出任意角度
| 1 2 3 4 5 6 7 8 9 10 | <div id="demo14"></div><style>#demo14{  border:10pxsolid transparent;  border-left:20pxsolid #f00;  width:0;  height:0px;}</style> | 
通过伪元素实现
三角形可以通过伪元素绘制出,而无需改变原来的DOM结构
文字内容
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <span id="demo15">文字内容</span><style>#demo15{  position:relative;}#demo15:after {  border:10pxsolid transparent;  border-left:10pxsolid #f00;  width:0;  height:0;  position:absolute;  content:' '}</style> | 
伪元素实现三角线箭头
通过伪元素绘制出的两个,一个与背景色相同覆盖部分红色箭头,形成三角线
文字内容
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <span id="demo15">文字内容</span><style>#demo16{  position:relative;}#demo16:after, #demo16:before {  border:10pxsolid transparent;  border-left:10pxsolid #fff;  width:0;  height:0;  position:absolute;  top:0;  right:-20px;  content:' '}#demo16:before {  border-left-color:#f00;  right:-21px;}</style> | 
三角线分割的Tab页
- 文字内容 Tab1
- 文字内容 Tab2
- 文字内容 Tab3
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <ul id="demo17">  <li>文字内容 Tab1</li>  <li>文字内容 Tab2</li>  <li>文字内容 Tab3</li></ul><style>#demo17{  font-size:10px;  height:24px;}#demo17li {  float:left;  position:relative;  list-style:none;  margin:020px 12px -19px;  border-top:solid1px #ddd;  border-bottom:solid1px #ddd;  padding-left:12px;}#demo17li:after, #demo17li:before {  border:10pxsolid transparent;  border-left:10pxsolid #fff;  width:0;  height:0;  position:absolute;  top:0;  right:-18px;  content:' '}#demo17li:before {  border-left-color:#ddd;  right:-19px;}</style> | 
三角形跟矩形组合成提示框
这里还有另一种效果,使用三角形跟矩形组合成提示框,代码来自这篇文章: Css arrows and shapes without markup
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <div id="demo"></div><style>#demo {  width:100px;  height:100px;  background-color:#ccc;  position:relative;  border:4pxsolid #333;}#demo:after, #demo:before {  border:solidtransparent;  content:' ';  height:0;  left:100%;  position:absolute;  width:0;}#demo:after {  border-width:9px;  border-left-color:#ccc;  top:15px;}#demo:before {  border-width:14px;  border-left-color:#333;  top:10px;}</style> | 
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号