|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14389
- 金币
- 2480
- 威望
- 1647
- 贡献
- 1428
|
CSS本身没有直接提供变换HTML链接下划线的功能,但只要运用一些技巧,我们还是可以让单调的网页链接下划线变得丰富多彩。 一、基本原理
1 Y3 |' _8 g+ o, S 首先,自定义HTML链接下划线的第一步是创建一个图形,在水平方向重复放置这个图形即形成下划线效果。如果要显示出下划线背后的网页背景,可以使用透明的.gif图形。3 y; ?% c c) [( S4 n$ b" I. V9 [* V
$ R! p( B8 [# A
其次,如果下划线图形的高度较大,则必须适当增加文本的高度,使得一行文本的底部与下一行文本的顶部之间有较大的空间,例如p { line-height: 1.5; }。
4 K, F4 `& M2 T; o7 J% o1 _: r# h3 r" U% q8 \
第三,为显示出自定义的下划线,必须隐藏默认的下划线,即a { text-decoration: none; }。
9 L' d' g! ~" m) |
& q6 r+ G1 e' f8 f# i 第四,为链接元素设置下划线图形,构造出自定义的下划线。假设下划线图形是underline.gif,则设置下划线图形的CSS代码为a { background-image: url(underline.gif); }。$ p* u4 Q2 O; Q7 P
C- l# h" i t" j4 D \. l: s0 P 第五,我们要让下划线图形在水平方向反复出现,但不能在垂直方向重复出现,否则它将被隐藏到文本的背后。要求下划线只在水平方向重复出现的代码为:a { background-repeat: repeat-x; }。& i" N0 {3 |5 d- R3 \+ W2 N5 p& W
' B$ {/ y/ b- G X3 n 第六,为保证图形出现在链接文字的下方(不管字体的大小),用background-position属性将图形放在链接元素的底部。对于箭头之类的下划线图形,可能还要考虑图形在水平方向的对齐方向。假设要将下划线图形放在右下角,CSS代码为:a { background-position:100% 100%; }。
3 d7 f$ N. H1 U% S3 ]7 J, N
( _% ^: L) b* B, ~) B 第七,为了在链接文本的下方给自定义图形留出空间,必须加入适当的空白。下划线图形相对于链接文字的具体位置与文字的大小有关,但一般而言,可以先让底部空白等于下划线图形的高度,必要时再作调整。例如:a { padding-bottom: 4px; }。
d) L; _* \- T, X- r& G# |
- Z, d$ y! e# E& R9 X& B 第八,由于下划线图形放在链接元素的底部,必须保证链接不折行(如允许链接跨越多个行,则只有下面一行的链接文本下面会有自定义的下划线)。用CSS的white-space属性可以防止链接文字折行,即a { white-space: nowrap; }。5 E* E/ d# r9 J
- `! U1 h3 X$ R' \ 综上所述,为链接元素定义CSS样式属性的完整例子如:
9 x3 w0 w) V* K
+ w0 k8 O5 F; t L8 y B a {
2 d- A% X- |3 V' R text-decoration: none;
, ?( i) {5 R4 e% J- ^9 R. O' g background: url(underline.gif) repeat-x 100% 100%;
9 a. _. R3 l; ~/ U7 ?1 s padding-bottom: 4px;
7 \" d; m5 B0 L white-space: nowrap;
" J' L: s( r3 l8 Z9 D& y7 [: C( X } 如果要让自定义下划线只在鼠标停留时出现,只要把原来直接设置在链接元素上的CSS background属性改到:hover ,例如:! l( n" C7 R+ y( g, }# U: T# l8 I
a {
8 E# X# d( t: r- Q. O+ Y( O- k: y, P text-decoration: none;# O' }1 [5 M/ Q) n1 d2 {4 u+ m
padding-bottom: 4px;2 s& f0 h; N( }
white-space: nowrap;
5 g' B" f" p' d5 P# I( d }- m) y2 w8 S& w: C% K+ K7 k* ?
a:hover {
0 ?4 z) L+ r: l6 y. `8 ^1 v: \ background: url(underline.gif) repeat-x 100% 100%;5 `9 b4 I% U" ~: D7 u# P5 s
} |
|