当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > CSS:自定多姿多彩的网页链接下划线

CSS样式表
css 块状元素和内联元素
CSS 盒模型、块状元素与内联元素、CSS选择器
css 浮动 理解Float的含义
CSS 清除浮动Clear
CSS 制作网页导航条(上)
CSS 制作网页导航条(下)
css 浮动(float)页面布局
css 浮动(float)页面布局(下)
css position 定位
css 定位应用实例
CSS Hack 有关浏览器兼容方面
css 单图片按钮实例(css 图片变换)
使用X-UA-Compatible来设置IE浏览器兼容模式
div overflow 超出隐藏属性使用说明
CSS 使用规则总结
div+CSS 兼容小摘
CSS的inherit与auto使用分析
如何组织和注释CSS文件
CSS样式按整洁易懂的结构组织
CSS Prism 查看和编辑CSS中用到的颜色

CSS样式表 中的 CSS:自定多姿多彩的网页链接下划线


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 43 ::
收藏到网摘: n/a

CSS本身没有直接提供变换HTML链接下划线的功能,但只要运用一些技巧,我们还是可以让单调的网页链接下划线变得丰富多彩。

  一、基本原理

  首先,自定义HTML链接下划线的第一步是创建一个图形,在水平方向重复放置这个图形即形成下划线效果。如果要显示出下划线背后的网页背景,可以使用透明的.gif图形。

  其次,如果下划线图形的高度较大,则必须适当增加文本的高度,使得一行文本的底部与下一行文本的顶部之间有较大的空间,例如p { line-height: 1.5; }。

自定义链接下划线示例

  第三,为显示出自定义的下划线,必须隐藏默认的下划线,即a { text-decoration: none; }。

  第四,为链接元素设置下划线图形,构造出自定义的下划线。假设下划线图形是underline.gif,则设置下划线图形的CSS代码为a { background-image: url(underline.gif); }。

  第五,我们要让下划线图形在水平方向反复出现,但不能在垂直方向重复出现,否则它将被隐藏到文本的背后。要求下划线只在水平方向重复出现的代码为:a { background-repeat: repeat-x; }。

  第六,为保证图形出现在链接文字的下方(不管字体的大小),用background-position属性将图形放在链接元素的底部。对于箭头之类的下划线图形,可能还要考虑图形在水平方向的对齐方向。假设要将下划线图形放在右下角,CSS代码为:a { background-position: 100% 100%; }。

  第七,为了在链接文本的下方给自定义图形留出空间,必须加入适当的空白。下划线图形相对于链接文字的具体位置与文字的大小有关,但一般而言,可以先让底部空白等于下划线图形的高度,必要时再作调整。例如:a { padding-bottom: 4px; }。

  第八,由于下划线图形放在链接元素的底部,必须保证链接不折行(如允许链接跨越多个行,则只有下面一行的链接文本下面会有自定义的下划线)。用CSS的white-space属性可以防止链接文字折行,即a { white-space: nowrap; }。

  综上所述,为链接元素定义CSS样式属性的完整例子如:

  a {
    text-decoration: none;
    background: url(underline.gif) repeat-x 100% 100%;
    padding-bottom: 4px;
    white-space: nowrap;
   }

  如果要让自定义下划线只在鼠标停留时出现,只要把原来直接设置在链接元素上的CSS background属性改到:hover ,例如:

  a {
    text-decoration: none;
    padding-bottom: 4px;
    white-space: nowrap;
   }

  a:hover {
    background: url(underline.gif) repeat-x 100% 100%;
   }

  二、实例欣赏

  假设有两个下划线图形diagonal.gif(波纹线)、flower.gif(花朵)前者的高、宽是3、9,后者的高、宽是11、15。下面是一个设置两种下划线的完整实例:

自定义链接下划线举例

  网页源代码如下:
   注:diagonal.gif 和 flower.gif已经先拷贝到网页所在的同一目录下。

  <html>
   <head>
   <title>ex</title>

  <style type="text/css">

  a#example1a {
   text-decoration: none;
   background: url(diagonal.gif) repeat-x 100% 100%;
   white-space: nowrap;
   padding-bottom: 2px;
   }

  a#example1b {
   text-decoration: none;
   white-space: nowrap;
   padding-bottom: 2px;
   }

  a#example1b:hover {
   background: url(diagonal.gif) repeat-x 100% 100%;
   }

  a#example2a {
   text-decoration: none;
   background: url(flower.gif) repeat-x 100% 100%;
   white-space: nowrap;
   padding-bottom: 10px;
   }

  a#example2b {
   text-decoration: none;
   white-space: nowrap;
   padding-bottom: 10px;
   }

  a#example2b:hover {
   background: url(flower.gif) repeat-x 100% 100%;
   }

  -->
   </style>
   </head>

  <body>

  <p>实例:</p>
   <p> <a href="#" id="example1a">波纹线静态下划线</a>,
   <a href="#" id="example1b">鼠标停留时出现的波纹线</a>。</p>
   <p> <a href="#" id="example2a">花朵静态下划线</a>,
   <a href="#" id="example2b">鼠标停留时出现的花朵下划线</a>。</p>

  </body>
   </html>