CSS三角箭头应用实践

柴门鸟雀噪,归客千里至。光明顶下来,一路听着阵阵松涛,我们走过西海,飞来石,天海,爬过百步云梯,伴着凤凰松迎客松的多姿到了玉屏峰。玉屏峰犹如一道屏障,山面光滑如镜子,如屏风,还不时有几个斗大的字,说是哪位名人留下的。玉屏峰最险的地方是在一线天,上下达七八十度的落差,台阶狭,仅容一人,台阶窄,仅托一足,百米长,走多了,腿便打抖了,害怕了,还不时地叫着好刺激呀。

用CSS来制作无图片带箭头的DIV方框(此代码比较适合追求纯代码者)
这类效果也可以用图片背景来实现,代码会更简洁
CSS代码:

CSS Code复制内容到剪贴板
  1. div.container{position:absolute;
  2. top:30px;
  3. left:40px;
  4. font-size:9pt;
  5. display:block;
  6. height:100px;
  7. width:200px;
  8. background-color:transparent;
  9. *border:1pxsolid#666;
  10. }
  11. s{
  12. position:absolute;
  13. top:-20px;
  14. *top:-22px;
  15. left:20px;
  16. display:block;
  17. height:0;
  18. width:0;
  19. font-size:0;
  20. line-height:0;
  21. border-color:transparenttransparent#666transparent;
  22. border-style:dasheddashedsoliddashed;
  23. border-width:10px;
  24. }
  25. i{position:absolute;
  26. top:-9px;
  27. *top:-9px;
  28. left:-10px;
  29. display:block;
  30. height:0;
  31. width:0;
  32. font-size:0;
  33. line-height:0;
  34. border-color:transparenttransparent#ffftransparent;
  35. border-style:dasheddashedsoliddashed;
  36. border-width:10px;
  37. }
  38. .content{
  39. border:1pxsolid#666;
  40. -moz-border-radius:3px;
  41. -webkit-border-radius:3px;
  42. position:absolute;
  43. background-color:#fff;
  44. width:100%;
  45. height:100%;
  46. padding:5px;
  47. *top:-2px;
  48. *border-top:1pxsolid#666;
  49. *border-top:1pxsolid#666;
  50. *border-left:none;
  51. *border-right:none;
  52. *height:102px;
  53. box-shadow:3px3px4px#999;
  54. -moz-box-shadow:3px3px4px#999;
  55. -webkit-box-shadow:3px3px4px#999;
  56. /*ForIE5.5-7*/
  57. filter:progid:DXImageTransform.Microsoft.Shadow(Strength=4,Direction=135,Color='#999999');
  58. /*ForIE8*/
  59. -ms-filter:"progid:DXImageTransform.Microsoft.Shadow(Strength=4,Direction=135,Color='#999999')";
  60. }

HTML代码:

XML/HTML Code复制内容到剪贴板
  1. <divclass="container">
  2. <divclass="content">
  3. <br>这是框中的文字,可动态显示。高度自动增加,应该不错吧^_^
  4. </div>
  5. <s>
  6. <i></i>
  7. </s>
  8. </div>

效果图:

这次介绍下CSS制作三角箭头

通常,我们做上图那个三角形,一般都是做张图,而且需要两张,因为一般都是下拉菜单的效果,需要有个hover的样式,箭头是反的。那是不是有更好的办法呢,毕竟要用两张图片来解决这么一个小问题太浪费资源了,于是,下面我要用纯CSS的方法来解决这一问题,用到的只需css的一个属性,就是border-width

我们先来看个样式,如果设置元素边框,会怎么样:

似乎看不出什么,让我给四个边框加上不同的颜色吧再看看吧:

是不是发现了些什么?对,让我们把中间的文字去掉吧:

这样,就出现4个三角形了,然后我们如果需要顶部那个三角形,只需要将border的left、right、bottom设置成背景色就行了:

这样,我们需要的三角形就出现了,并且可以设置4个不同方向的了:

样式代码很简单,就几句话:

CSS Code复制内容到剪贴板
  1. float:left;
  2. border-style:solid;border-width:10px;
  3. border-color:#000#ccc#ccc#ccc;
  4. height:0;
  5. width:0;
  6. font-size:0;

实际应用

比如我们要使用向下的箭头(兼容IE6写法)

HTML代码:

XML/HTML Code复制内容到剪贴板
  1. <divclass="demo"><spanclass="bottom-arrow"></span></div>

CSS代码:

CSS Code复制内容到剪贴板
  1. .demo{position:relative}
  2. .bottombottom-arrow{
  3. position:absolute;
  4. top:10px;
  5. left:0px;
  6. border-style:solid;
  7. border-width:100px;
  8. border-color:#000000transparenttransparenttransparent;/*上边框设置想要的颜色*/
  9. height:0;
  10. width:0;
  11. font-size:0;
  12. _border-color:#000000tomatotomatotomato;/*边框透明色ForIE6-*/
  13. _filter:chroma(color=tomato);/*边框透明色ForIE6-*/
  14. }

说明:
这里的演示是用了边框透明色,如果你用不到透明的话,直接设置border-color为你需要的颜色就可以了,免去为了兼容IE6的透明边框滤镜写法
Chroma属性可以设置一个对象中指定的颜色为透明色,它的表达式如下:

CSS Code复制内容到剪贴板
  1. Filter:Chroma(color=color)

这个属性的表达式是不是很简单,它只有一个参数。只需把您想要指定透明的颜色用Color参数设置出来就可以了。

本文CSS三角箭头应用实践到此结束。在我们的记忆中,每一次“错过”都是完美的:或是浪漫的情感历程,或是平步青云的官运,或是唾手可得的财气。但同时,我们也许错过了疾病,错过了灾难,错过了失败,错过了与己无益的是与非。所以,不必为错过叹息,因为在叹息中,我们又将错过今日的完美。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
css让页脚保持在底部位置的四种方案

Flex布局史上最简单使用语法教程

新的CSS 伪类函数 :is() 和 :where()示例详解

纯CSS打字动画的如何实现示例

CSS浮动引起的高度塌陷问题