  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14189
- 金币
- 2385
- 威望
- 1647
- 贡献
- 1333
|
CSS本身没有直接提供变换HTML链接下划线的功能,但只要运用一些技巧,我们还是可以让单调的网页链接下划线变得丰富多彩。 一、基本原理 : B# r0 I4 [7 [ O+ Q* @+ u; u
首先,自定义HTML链接下划线的第一步是创建一个图形,在水平方向重复放置这个图形即形成下划线效果。如果要显示出下划线背后的网页背景,可以使用透明的.gif图形。+ `1 i2 q. l# A! @2 c" C- F# x
% [0 C3 |3 S$ ]) f' P
其次,如果下划线图形的高度较大,则必须适当增加文本的高度,使得一行文本的底部与下一行文本的顶部之间有较大的空间,例如p { line-height: 1.5; }。
3 e6 [3 U1 k; `9 `( v: e" f% o( ^/ u/ i8 s
第三,为显示出自定义的下划线,必须隐藏默认的下划线,即a { text-decoration: none; }。
' x$ J- f; t9 V7 J7 i5 Z2 r ?$ p% Q; E
第四,为链接元素设置下划线图形,构造出自定义的下划线。假设下划线图形是underline.gif,则设置下划线图形的CSS代码为a { background-image: url(underline.gif); }。* Y- K2 i G$ C: z- W! L# S8 C7 s
6 p" a1 P- V( C* ~! e |3 y! C- ~
第五,我们要让下划线图形在水平方向反复出现,但不能在垂直方向重复出现,否则它将被隐藏到文本的背后。要求下划线只在水平方向重复出现的代码为:a { background-repeat: repeat-x; }。
- n' a8 N( o7 h, w7 v% K! ?9 f: f+ b9 {+ r. M# I% i4 c
第六,为保证图形出现在链接文字的下方(不管字体的大小),用background-position属性将图形放在链接元素的底部。对于箭头之类的下划线图形,可能还要考虑图形在水平方向的对齐方向。假设要将下划线图形放在右下角,CSS代码为:a { background-position:100% 100%; }。/ ^( O O; W' N6 r) s" E; |
9 H7 c" ]" ], ~' n5 Z6 W8 P: k$ F9 R- @ 第七,为了在链接文本的下方给自定义图形留出空间,必须加入适当的空白。下划线图形相对于链接文字的具体位置与文字的大小有关,但一般而言,可以先让底部空白等于下划线图形的高度,必要时再作调整。例如:a { padding-bottom: 4px; }。
5 w1 D- d7 [: i# x: d& C! T) ~
1 \$ V% M: R% y: }5 P+ Y 第八,由于下划线图形放在链接元素的底部,必须保证链接不折行(如允许链接跨越多个行,则只有下面一行的链接文本下面会有自定义的下划线)。用CSS的white-space属性可以防止链接文字折行,即a { white-space: nowrap; }。
( `+ J7 {3 P# M; W6 C+ q* @; t1 _
3 ?/ m8 T) W$ t% e5 r( Q$ U 综上所述,为链接元素定义CSS样式属性的完整例子如:
6 D& W# i1 s( E- \" j
' t1 W9 m: \2 m6 W a {- h7 l, \- r1 N M; Q5 ^0 ^8 \
text-decoration: none;
. i! C! _. W3 w& ~! S" p! w background: url(underline.gif) repeat-x 100% 100%;1 ]4 `- s' |, c1 T$ q; {0 [( [
padding-bottom: 4px;( k! N$ Y* L T# P' {) \) y
white-space: nowrap;
2 n! g/ m, w; e! O } 如果要让自定义下划线只在鼠标停留时出现,只要把原来直接设置在链接元素上的CSS background属性改到:hover ,例如:
$ U2 S" f3 `6 N% u; w a {
4 V+ O, |2 o/ T, i# U/ J text-decoration: none;/ }" b8 `* M& @0 I: k, Z2 T8 i
padding-bottom: 4px;2 J# ]% q' \2 B/ w3 V( ~
white-space: nowrap;4 i( V( ?1 g4 Y& D2 w
}
# ~6 i: C: h7 S, }9 ~0 z$ v a:hover {) ~1 }$ w* h6 f0 l
background: url(underline.gif) repeat-x 100% 100%;! j' w/ b/ M8 H- J$ D
} |
|