返回列表 发新帖

利用纯css创建一个三角形

374.9k 9
swmozowtfl 发表于 2015-7-9 23:01:55|湖北 | 查看全部 阅读模式
网页中对话气泡框下边的小三角是非常有用的,绘制的方法很多,想什么字体图标、小图片之类的都可以,但是都不够灵活和快捷,有了 css3 之后绘制一个三角形就非常简单了9 y& E  x7 _; L9 Y
利用纯 css 创建一个三角形9 W9 r- e- E. `6 h$ v% Z) F
首先当然是一个任意的空标签来当小三角,下边的 css 丢进去即可:
! L9 c( m5 @( P' U$ z代码如下:
  E7 d' g' ^5 }1 O4 b* ~) f& O
.triangle{  H8 m+ x. x# G- }+ h! ?
left:50%;! C3 Q: \2 M5 a5 }1 }/ t5 {. J
margin-left:-5px;) O2 a; j: y% S
width:5px;
$ J  p. c3 y: ~+ X9 a2 y4 X  }height:5px;" }, \: t+ w: T( U5 }6 F* Z2 L* s1 r" _
background:#fafafa;+ a2 O* l/ T6 L# {5 w
bottom:-4px;+ C) D; B3 }* q& ]( e& W- q" X
position:absolute;
% u7 c) s  }4 u6 htransform:rotate(45deg);9 E$ s0 H# J# m- G: z7 E
-ms-transform:rotate(45deg);
! f8 J4 `% p* r3 S. Z-moz-transform:rotate(45deg);8 l6 a$ D' i  c9 G0 T2 ?
-webkit-transform:rotate(45deg);
, N8 {/ p0 F1 `) A' i$ d-o-transform:rotate(45deg);/ `2 r; g4 l# R' K1 a$ t
border:1px solid #e5e5e5;
. q4 i1 Z% f" e6 r$ Kborder-top:none;
! x2 Q  p+ e& K$ Uborder-left:none/ i. ^. i4 n( o1 D/ M
}. ~' E* u- y# V( x0 ^& d3 s* K
代码利用 css3 的 2d 旋转属性对正方形进行旋转,并且隐藏掉顶部左右两边的边框就可以实现小三角了。
+ \3 K# e/ }- }例子
! g# U2 f* s, l3 h, b, N代码如下:
: B6 N4 y( S7 D2 S, [5 i
<!doctype html>1 Z6 o& t1 R$ w6 G0 j$ f
<html>
- P; `4 J" L% D5 _<head>
  B7 b, R2 V# {<meta charset=utf-8>  h/ Y% F+ x4 T! N- c2 ]6 I
<script type=text/javascript src=/libs/jquery/1.4.4/jquery.min.js></script>
1 z( q- _) S7 `5 l0 k( ^0 ^9 y<title>三种纯css实现三角形的方法</title>
! x/ n) _' j8 U) W' Z$ M1 ~<link rel=stylesheet >' e% X+ Z+ Z: U6 _
<style type=text/css>; v0 ^, t  r7 |" R+ p1 [: q. a
.page-info { padding:8px 15px; background:#fcea9e; border-bottom:1px solid #b6bac0; font:normal 16px GEOrgia; }
+ A! K) c6 R- E8 I2 y+ u7 o.page-info h1 { float:left; }
3 B9 N8 z6 b  a2 o.page-info a { font-weight:bold; color:#222; }
& Q! T5 {1 _- K7 A! w4 G3 K.return-article { float:right; }+ m4 b7 o8 m5 ~9 c3 Y! ^! d. k$ j( I
.return-article h2{ display:inline; }2 o% a$ m: b3 _" y
/*border模拟tips*/
' r- `) [2 }! V" J" G# A.message-box { position:relative; float:left; margin:80px 0 0 100px; width:240px;
) n' Y* N' x" D0 O; N, kheight:60px; line-height:60px; background:#e9fbe4; box-shadow:1px 2px 3px #e9fbe4;
& F/ F7 g/ H  j8 V( i3 t6 x* qborder:1px solid #c9e9c0; border-radius:4px; text-align:center; color:#0c7823; }5 ^% D$ j2 M1 O' N0 c7 Q' M
.triangle-border { position:absolute; left:30px; overflow:hidden; width:0; height:0;
4 ]1 G% }5 B% _! v% T0 n0 Sborder-width:10px; border-style:solid dashed dashed dashed; }
. ?4 @! `8 n3 v3 T.tb-border { bottom:-20px; border-color:#c9e9c0 transparent transparent transparent; }
' M! |& z) r: @.tb-background { bottom:-19px; border-color:#e9fbe4 transparent transparent transparent; }  j& O7 U+ i; K  y  H  }% |: J
/*字符模拟tips*/
) U7 d& p# _3 u) ]2 `; |9 y7 u( f.triangle-character { position:absolute; left:30px; overflow:hidden; width:26px; height:26px; font:normal 26px 宋体; }
( x4 O1 Z; @' q9 r! X.tc-background { bottom:-12px; color:#e9fbe4; }: S3 m: b6 R: G3 V$ M0 Q8 C6 a$ u
.tc-border { bottom:-13px; color:#c9e9c0;}! e8 `3 ~+ D( m3 V, \: S& T! ?; r" [: m
/*css3 transfrom 模拟tips*/
% b  F- w, j) z9 {$ n" W* a.triangle-css3 { position:absolute; bottom:-8px; bottom:-6px; left:30px; overflow:hidden; width:13px; height:13px; background:#e9fbe4; border-bottom:1px solid #c9e9c0; border-right:1px solid #c9e9c0;}, Y4 h  d- `, b) ?6 g* C3 v+ Y( Z" O6 Z
.transform { -webkit-transform:rotate(45deg); -moz-transform:rotate(45deg); -o-transform:rotate(45deg);( ?5 |9 G4 V" d% h4 B; N
transform:rotate(45deg); }7 q* ?/ b  |) `5 T4 ]% s
/*ie7-9*/1 s5 _; I/ d5 C
.ie-transform-filter {
5 w% D+ v7 @0 \' |9 d-ms-filter: progid:dximagetransform.microsoft.matrix(m11=0.7071067811865475, m12=-0.7071067811865477, m21=0.7071067811865477, m22=0.7071067811865475, sizingmethod='auto expand');
7 A6 }+ @, O$ ifilter: progid:dximagetransform.microsoft.matrix( m11=0.7071067811865475,m12=-0.7071067811865477,
7 ?- E& I3 ?! i' |! Pm21=0.7071067811865477,m22=0.7071067811865475,sizingmethod='auto expand');
/ R8 o7 @, ?$ l9 q& g}3 |- e7 v" L& ]  C
</style>
( k9 X2 i. R) D/ @0 G, U6 ?</head>
7 v/ w$ J; ^! E! F<body>8 u; R0 c0 @, g  s" `' w
<div class=message-box>- J3 F, {& Q3 ?; l: ?8 k
<span>我是利用 border 属性实现的</span>
6 e2 R4 F' F- W2 |- O<div class=triangle-border tb-border></div>
) L& U+ x/ O. f4 o) N" T$ w: o<div class=triangle-border tb-background></div>+ x) A* l9 y! u& c0 K0 u- G0 i& V
</div>
' T! ~" a! j$ _2 ]% H# g0 y<div class=message-box>
5 Y" k% \" A, d* [, Z- Q2 c& S<span>我是利用 ◆ 字符实现的</span>
/ p9 V  Z1 ^$ i# P, }) M  i! r1 C<div class=triangle-character tc-border>◆</div>
/ p* W5 S6 N+ F% ?; i0 _! t# W<div class=triangle-character tc-background>◆</div>& }3 S9 {% A- W$ q* r( U, s* V
</div>
( E+ Y" V; @* J9 h9 G# A<div class=message-box>
+ f4 [% m4 Z2 b) {# ?1 M" h<span>我是利用 css transfrom 属性实现的</span>2 |% r) U7 C2 l1 P. q
<div class=triangle-css3 transform ie-transform-filter></div>
1 _, U$ m# F' C7 @" g, P</div>
/ M. _% A% y& K, A' O0 P; _, W</body>
6 L' B& _' O2 R3 L</html>3 o  ^$ H9 C6 ~7 o& S# n# n8 ?" @
3 K* B1 J/ |2 O  g: L( \. X
更多网页制作信息请查看: 网页制作

回复|共 9 个

Acropozelan 发表于 2015-10-11 14:42:31|美国 | 查看全部
要睡觉了 呵呵
Mqokjdvq 发表于 2015-10-11 14:42:42|美国 | 查看全部
说嘛1~~~想说什么就说什么嘛~~
wwzcdenleclv 发表于 2015-10-11 14:43:02|美国 | 查看全部
哦...这个...偶昨天就看了....
gevaemaidovef 发表于 2015-10-11 14:43:33|Reserved | 查看全部
命不能争,运可以造,弱者认命,强者抗命,能者求命,智者造命。
gevaemaidovef 发表于 2015-11-11 13:03:48|韩国 | 查看全部
笨点也好~~~~
wwdu926a 发表于 2015-11-11 13:04:28|美国 | 查看全部
假如我们把自己力所能及的事都完成了,我们会真的令自己大吃一惊。
gevaemaidovef 发表于 2015-11-11 13:04:41|台湾 | 查看全部
可以加精,签定完毕!
wwdu926a 发表于 2015-11-11 13:05:03|INNA | 查看全部
哈哈~~~相比现在没人在了 吧 哈哈~~~~
mwxny 发表于 2015-11-11 13:05:03|INNA | 查看全部
说嘛1~~~想说什么就说什么嘛~~

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 站长技术交流论坛|互联网技术交流平台|Ai技术交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表