网页中对话气泡框下边的小三角是非常有用的,绘制的方法很多,想什么字体图标、小图片之类的都可以,但是都不够灵活和快捷,有了 css3 之后绘制一个三角形就非常简单了/ p# D+ ^, h1 U4 R+ }
利用纯 css 创建一个三角形) X. Z& I$ k5 |( h) W/ }
首先当然是一个任意的空标签来当小三角,下边的 css 丢进去即可:
/ h$ ?( r8 n5 M' Q* j6 p代码如下:9 T6 ` ?9 t8 s. Y# [
.triangle{
: }2 M$ c8 m# K$ e) d7 W+ z$ z/ Uleft:50%;) C6 h$ X# F; U8 \9 Z" D$ Y
margin-left:-5px;
6 V1 s9 j4 d, h; P* _" ~width:5px;, _& }; ?1 c+ I& L$ `7 s- x
height:5px;( a1 ], `9 S; r7 W4 P" z" Y0 @
background:#fafafa;
* g) s- E3 X* z2 V% H0 _; B' X& \0 `bottom:-4px;2 G' D$ a: v5 q
position:absolute;. k2 m# w( \7 h2 G
transform:rotate(45deg);
) V+ F! h$ f( N2 r& v5 \2 ^- ~-ms-transform:rotate(45deg);
3 u9 C8 J }, p; j4 D$ w. T-moz-transform:rotate(45deg);
6 a8 z- _8 M, i1 _-webkit-transform:rotate(45deg);7 Q' \1 `( X, j% X/ [
-o-transform:rotate(45deg);. I/ m+ ^. d( L7 ^& ~- Z
border:1px solid #e5e5e5;6 E% S/ V" f( m( w; Y, t+ ~
border-top:none;
/ J" Z2 s2 T# D% ^, Q8 b3 q$ ]border-left:none" M' F O/ \/ S8 {
}* Y" h% P0 ?* `3 W% F% x1 _
代码利用 css3 的 2d 旋转属性对正方形进行旋转,并且隐藏掉顶部左右两边的边框就可以实现小三角了。
5 U7 u8 C/ K# u: a3 l& ~( Z' i例子
( `) `$ j6 t2 C3 o$ T5 L# C代码如下:
1 d' R1 J: |/ a- E, g' P& C<!doctype html>
7 H) K/ C# p9 M% N2 a<html>
, h4 K0 e( F+ x<head>
4 S+ ^2 k6 l1 ^3 v- ]$ t, v<meta charset=utf-8>
3 Q9 C4 U# E& D/ v; _- T" i<script type=text/javascript src=/libs/jquery/1.4.4/jquery.min.js></script>( s* n4 a: Q+ |
<title>三种纯css实现三角形的方法</title>
/ ?, v. ~! o% [3 A<link rel=stylesheet >2 `2 b) O) V4 V; `
<style type=text/css># o, Z" P. W0 o" Z1 Y
.page-info { padding:8px 15px; background:#fcea9e; border-bottom:1px solid #b6bac0; font:normal 16px GEOrgia; } n5 \# S" { I/ o. ?) B4 n6 X
.page-info h1 { float:left; }
' Z6 l; h9 x: ?3 P5 [.page-info a { font-weight:bold; color:#222; } 9 P# P$ e& A/ R& K
.return-article { float:right; }
8 x& s' s& X) Z3 ].return-article h2{ display:inline; }
) v4 W9 ^% L e: Y' {/ |# Y/*border模拟tips*/
2 z* `' d" r# k1 q% K* h! [: R' ]; |.message-box { position:relative; float:left; margin:80px 0 0 100px; width:240px;: x5 ^0 E. C2 l3 z9 z" X
height:60px; line-height:60px; background:#e9fbe4; box-shadow:1px 2px 3px #e9fbe4;8 S! z* a' B2 u
border:1px solid #c9e9c0; border-radius:4px; text-align:center; color:#0c7823; }1 [- e" y! J7 W- T/ h2 n4 `9 f1 S3 |9 R
.triangle-border { position:absolute; left:30px; overflow:hidden; width:0; height:0;
$ \0 p5 a# }% p) tborder-width:10px; border-style:solid dashed dashed dashed; }
6 C; u2 Y0 ?/ b% {.tb-border { bottom:-20px; border-color:#c9e9c0 transparent transparent transparent; }) K4 Z9 N5 D2 S- A
.tb-background { bottom:-19px; border-color:#e9fbe4 transparent transparent transparent; }
3 T$ d w' X! y/*字符模拟tips*/5 R: H3 q1 n! J0 O, h
.triangle-character { position:absolute; left:30px; overflow:hidden; width:26px; height:26px; font:normal 26px 宋体; }8 `7 X3 s1 s; D, L j% w
.tc-background { bottom:-12px; color:#e9fbe4; }
1 X+ t4 r7 u" V' B0 w/ x.tc-border { bottom:-13px; color:#c9e9c0;}* @& A- C+ T8 t8 O% }# c- I
/*css3 transfrom 模拟tips*/
" R2 L3 Q. Y4 ?3 S.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;}, |# n* X& v7 C( r+ m
.transform { -webkit-transform:rotate(45deg); -moz-transform:rotate(45deg); -o-transform:rotate(45deg);- i" ^# m2 E- ?4 @0 E3 O
transform:rotate(45deg); }
7 @# M! d# Z( P, J/*ie7-9*/
0 c, w- j8 i# O6 ?6 U7 c# n.ie-transform-filter {
! \2 `; Y0 Z% @$ [/ L-ms-filter: progid:dximagetransform.microsoft.matrix(m11=0.7071067811865475, m12=-0.7071067811865477, m21=0.7071067811865477, m22=0.7071067811865475, sizingmethod='auto expand');
$ [. s% ~. Y: \- B# {9 Afilter: progid:dximagetransform.microsoft.matrix( m11=0.7071067811865475,m12=-0.7071067811865477,
1 d; D: `) ~( A a3 tm21=0.7071067811865477,m22=0.7071067811865475,sizingmethod='auto expand');) o4 _) b X- ] v
}% T1 m0 c+ [) T t! q
</style>9 [3 T$ l4 p; r. W- C* o8 ~( N
</head>! m7 c& J) ~ L' A' j
<body>
& H; q) ~. A' v7 [5 U3 L<div class=message-box>
4 e5 M; E1 k) O<span>我是利用 border 属性实现的</span>
/ c6 G0 J9 v1 F<div class=triangle-border tb-border></div>
. x; _0 M* p y5 R( h, U<div class=triangle-border tb-background></div>. g4 m/ \/ ?3 T1 Q% U, t) |
</div># U% w" C# L% @, |' x& t$ m
<div class=message-box>% n! l" H& x! c& \1 u
<span>我是利用 ◆ 字符实现的</span>
6 o% T+ F2 i. I' N, V: Q. a<div class=triangle-character tc-border>◆</div>3 R, O( N. n- k# w+ ?, `
<div class=triangle-character tc-background>◆</div>
9 q( n% \+ h2 @. X- \+ B</div>3 O& X( `" z0 O$ b7 W% L+ [$ U
<div class=message-box>
6 J1 _2 O* N) Q2 @<span>我是利用 css transfrom 属性实现的</span>
8 E E6 K5 x# x7 |( G9 W4 Y( ?! g<div class=triangle-css3 transform ie-transform-filter></div>
/ h }* ~+ o8 h3 w0 f+ k$ r8 Z) `3 v</div>+ ^# Y2 u4 G- U: j- ?- {" n8 W
</body>9 u! i* g3 F$ c: O3 n- j1 n" P
</html># B- v D2 R: k( \
4 Q* |# n8 Y% ~0 V+ N* k6 B
更多网页制作信息请查看: 网页制作 |
|