  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14171
- 金币
- 2376
- 威望
- 1647
- 贡献
- 1324
|
CSS本身没有直接提供变换HTML链接下划线的功能,但只要运用一些技巧,我们还是可以让单调的网页链接下划线变得丰富多彩。 一、基本原理
; n4 Y6 |0 X' p& |+ C 首先,自定义HTML链接下划线的第一步是创建一个图形,在水平方向重复放置这个图形即形成下划线效果。如果要显示出下划线背后的网页背景,可以使用透明的.gif图形。
5 U7 N6 D5 ^ p+ w3 Y& G- D- O9 | A) C9 ?
其次,如果下划线图形的高度较大,则必须适当增加文本的高度,使得一行文本的底部与下一行文本的顶部之间有较大的空间,例如p { line-height: 1.5; }。6 |* {) K* K4 n
& v F8 R8 k' } 第三,为显示出自定义的下划线,必须隐藏默认的下划线,即a { text-decoration: none; }。/ q' t7 j* Z! E3 |- R
: F0 B# Q! \4 D/ G& z( _& j" k
第四,为链接元素设置下划线图形,构造出自定义的下划线。假设下划线图形是underline.gif,则设置下划线图形的CSS代码为a { background-image: url(underline.gif); }。+ h8 m/ V' ~3 F5 {. Y9 A( e5 k
( U8 ]0 D9 q# E b* ?% X. D) w. a& d
第五,我们要让下划线图形在水平方向反复出现,但不能在垂直方向重复出现,否则它将被隐藏到文本的背后。要求下划线只在水平方向重复出现的代码为:a { background-repeat: repeat-x; }。; \$ m. T' M/ W5 i
% M, O: L( Z1 Q) L2 ^6 i 第六,为保证图形出现在链接文字的下方(不管字体的大小),用background-position属性将图形放在链接元素的底部。对于箭头之类的下划线图形,可能还要考虑图形在水平方向的对齐方向。假设要将下划线图形放在右下角,CSS代码为:a { background-position:100% 100%; }。
3 j) [- t! i. S
4 o. s% ]5 K) ]( a# a 第七,为了在链接文本的下方给自定义图形留出空间,必须加入适当的空白。下划线图形相对于链接文字的具体位置与文字的大小有关,但一般而言,可以先让底部空白等于下划线图形的高度,必要时再作调整。例如:a { padding-bottom: 4px; }。
, L. y) M( x/ s# s3 M2 v: C3 z* M/ O! v5 M* f$ v; n: Q5 U
第八,由于下划线图形放在链接元素的底部,必须保证链接不折行(如允许链接跨越多个行,则只有下面一行的链接文本下面会有自定义的下划线)。用CSS的white-space属性可以防止链接文字折行,即a { white-space: nowrap; }。
1 r" {$ H- |4 G1 V- U) ?, W
3 q# d: [+ C' Q7 E# D 综上所述,为链接元素定义CSS样式属性的完整例子如:! \1 v$ m9 z" ?8 g
& \' l: S3 o$ u/ f
a {
/ F6 k: v8 N) n. m7 ~" j9 I/ J text-decoration: none;
) ?( M+ T! P+ F# y- f9 \ background: url(underline.gif) repeat-x 100% 100%;
$ r0 Z$ V1 S8 m padding-bottom: 4px;
9 V* r! ?: S6 R) V: ]: R0 }! B white-space: nowrap;) _# U) a# T: V3 c% o- L
} 如果要让自定义下划线只在鼠标停留时出现,只要把原来直接设置在链接元素上的CSS background属性改到:hover ,例如:
1 Y6 ]' z' U0 X" \! H6 a a {4 g# C% A' x" n% w8 k
text-decoration: none;% h/ Z2 s4 V! B: h, G
padding-bottom: 4px;
3 n6 t$ ^1 S' {0 C white-space: nowrap;
6 E, I: f, t3 I9 N4 d6 \ }
' q* z1 u, Y. f' J* p9 F/ D1 K a:hover {
# r, Q6 m3 v- e5 l: x; C( B2 P2 K background: url(underline.gif) repeat-x 100% 100%;
3 c& J) p: g" R* F. C( U3 M } |
|