  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14247
- 金币
- 2414
- 威望
- 1647
- 贡献
- 1362
|
CSS本身没有直接提供变换HTML链接下划线的功能,但只要运用一些技巧,我们还是可以让单调的网页链接下划线变得丰富多彩。 一、基本原理 - O& W V5 U H' u$ ]: w
首先,自定义HTML链接下划线的第一步是创建一个图形,在水平方向重复放置这个图形即形成下划线效果。如果要显示出下划线背后的网页背景,可以使用透明的.gif图形。" u R) A0 r( X' ^! k2 R( ~2 b
5 X* e& h {9 I! r6 s2 n) N4 T
其次,如果下划线图形的高度较大,则必须适当增加文本的高度,使得一行文本的底部与下一行文本的顶部之间有较大的空间,例如p { line-height: 1.5; }。
; c* ^; w0 O* B8 A8 ~
' W/ I) l! W; L R6 U4 s( v8 | 第三,为显示出自定义的下划线,必须隐藏默认的下划线,即a { text-decoration: none; }。
; W# d% o2 T; v# Y h" q3 K: N; E' N
: a2 T( c9 t; D& ?& { 第四,为链接元素设置下划线图形,构造出自定义的下划线。假设下划线图形是underline.gif,则设置下划线图形的CSS代码为a { background-image: url(underline.gif); }。+ V+ Y' u! e P$ |5 g" k; n) L
- B* v' \5 |) a/ t1 i+ N
第五,我们要让下划线图形在水平方向反复出现,但不能在垂直方向重复出现,否则它将被隐藏到文本的背后。要求下划线只在水平方向重复出现的代码为:a { background-repeat: repeat-x; }。6 E' @# O+ l) B& u% _( q2 w- ^1 T2 I
' S9 Y [8 B* b. }. k4 _6 l 第六,为保证图形出现在链接文字的下方(不管字体的大小),用background-position属性将图形放在链接元素的底部。对于箭头之类的下划线图形,可能还要考虑图形在水平方向的对齐方向。假设要将下划线图形放在右下角,CSS代码为:a { background-position:100% 100%; }。
! w* `3 O# ?" p5 m9 H
9 S1 x" q7 x0 @ L2 V 第七,为了在链接文本的下方给自定义图形留出空间,必须加入适当的空白。下划线图形相对于链接文字的具体位置与文字的大小有关,但一般而言,可以先让底部空白等于下划线图形的高度,必要时再作调整。例如:a { padding-bottom: 4px; }。" t. s* t+ ^! ]5 r" t
$ B7 `' K7 f6 o. |* _
第八,由于下划线图形放在链接元素的底部,必须保证链接不折行(如允许链接跨越多个行,则只有下面一行的链接文本下面会有自定义的下划线)。用CSS的white-space属性可以防止链接文字折行,即a { white-space: nowrap; }。
& K8 J) o8 k8 s+ ~5 }% ]. ^5 _7 e
综上所述,为链接元素定义CSS样式属性的完整例子如:
; U' n, `4 ]2 N U# s3 I% e4 ^( s/ y3 o% F& v0 @7 o
a {% S3 l X7 W1 a% H: `/ U# X% w2 b
text-decoration: none;
9 i, N1 O; |- X! E background: url(underline.gif) repeat-x 100% 100%;
+ ~+ K8 @; u" y$ _) f3 h padding-bottom: 4px;9 v. M1 x6 p/ o E& ?) n! B! u
white-space: nowrap;' @* o0 E' M, s+ a; O- G! x& U
} 如果要让自定义下划线只在鼠标停留时出现,只要把原来直接设置在链接元素上的CSS background属性改到:hover ,例如:
, w9 m% k8 K( q3 v0 }( b a {
5 N! i6 B9 y" q! W# Z3 d text-decoration: none;
5 j( z5 X5 `5 q5 j1 V padding-bottom: 4px;+ `6 V5 T. D( j1 Q" [7 M
white-space: nowrap;+ _9 v3 G: i8 k, z+ _4 \" n* F
}
& z0 l; m0 P) U" R$ w* c a:hover {
) |" ~8 u; T/ m, p5 @0 f! ` background: url(underline.gif) repeat-x 100% 100%;# ~2 ]' t+ v$ G' H3 t7 _+ {, ~ }
} |
|