亲宝软件园·资讯

展开

css利用A标签的背景可能作出很有意思的效果

人气:0
想了解css利用A标签的背景可能作出很有意思的效果的相关内容吗,在本文为您仔细讲解的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:css,A标签,效果,下面大家一起来学习吧。
这个效果是今天有人写邮件给我问的一个效果,记前以前利用A标签的背景写过一个类似的效果。于是刚刚回来就写了一下他要求的效果!顺便贴出来和大家分享一下,如果你很有创意,那么你一定能作出更有意思的效果。

他提出来的效果,是九天音乐首页一个FLASH的作的效果,要用CSS模仿同样的效果,可能是因为不想用FLASH或是SEO之类的目地。于是用FW作了两张GIF的图片,来模仿这样的效果,由于是是测试用,所以图片等很多方面没有考虑的特别细。有些粗糙,但看上去还是有那么点意思的,呵呵……  

首先说一下:a:link、a:visited、a:hover、a : active:可能有人说我这是废话,但如果是新手看到了这个,会很有用的,别人告诉你的东西,总比自已悟上半天的快。 
复制代码 代码如下:

a:link{} 
a:visited {} 
a:hover {} 
a:active {}  


以上语句分别定义了“正常链接”“已访问过的链接”“鼠标停在上方时”“点下鼠标时”的样式。

对于新手,这里千万要注意,在书写的过程中,这四行的顺序千万要按上边的次序来写,否则显示出来的效果会和预想的不一样。简单的记忆方面就是“LVHA”。love ha.

以下是制用这个效果要用到的两张图片:
         
以下是CSS部分:
复制代码 代码如下:

<style> 
*{ margin:0; padding:0; list-style:none; } 
body{ font-size:12px; line-height:1.8; padding:50px; background: #333; font-family:Verdana;} 

#test{ border:1px solid #000; padding:20px; float:left; background:#666666} 
#test li{float:left;margin-left:20px;} 

#test a{display:block;width:83px; line-height:79px;text-decoration:none; border:1px solid #000; text-align:center;} 
#test a:link,#test a:visited{color:#000;background:url(/upload/20071211191456983.gif);} 
#test a:hover,#test a:active{color:#000;background:url(/upload/20071211191456897.gif); border:1px solid #FF6600;}  
</style> 

以下是布局部分:
 程序代码
复制代码 代码如下:

<div id="test"> 
  <ul> 
    <li><a href="https://m.qb5200.com/www.qb5200.com">test1</a></li> 
    <li><a href="https://m.qb5200.com/www.qb5200.com">test2</a></li> 
    <li><a href="https://m.qb5200.com/www.qb5200.com">test3</a></li> 
    <li><a href="https://m.qb5200.com/www.qb5200.com">test4</a></li> 
  </ul> 
</div> 

以下是效果:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]


看完了,其实这东西一点技术含量也没有,就是用了两张图片。但是,如果你能让这两张图片有更多的变化,而且能组合得非常好,那一定可能用这样简单的代码来作出很有意思的效果,那时就不是模仿FLASH了,而是FLASH来模仿CSS了。

另然用A标签加宽度或高度不是一个很好的主意,但如果能用简单的代码来实现同样的效果,而且利于维护,我们不用去计较这些东西。就像前段时间听同事说:“技术只是手段”。对,用技术提供好的服务才是最好的,不用特别计较一些东西。就像家里的椅子是用来坐的,而我却用它来当饭桌吃饭,因为在我家这样是最合适的。如果用FLASH来作这样的显示,我想FLASH里边的文字在百度中一定搜不到,而且可不是百分百的用户都有FLASH插件的。

类例的效果应该用客齐集首页的地图上,如果感兴趣可以看一下:http://www.kijiji.cn/index.html

好了,晚安。 

应要求,CSS部分我解释一下!

 程序代码
<style>l
//*代表全部的标签,这里我把所有的标签的marging和padding处理掉;list-style对一些标签不起作用,主要处理掉ul前的序列标记的;
*{ margin:0; padding:0; list-style:none; }
//这个定义网页的文字大小为12px; 行高是正常的1.8倍,和180%是一个意思;还在文字字体和背景色
body{ font-size:12px; line-height:1.8; padding:50px; background: #333; font-family:Verdana;}

//定义ID为test的标签:边框为一个像素的黑色边;左浮动;
#test{ border:1px solid #000; padding:20px; float:left; background:#666666}
//ID用test下边的li标签全部左浮动,并距左边为20个像素
#test li{float:left;margin-left:20px;}

//定义ID为test下边的a标签为block(块);又定义了宽和高,还有边框等;
#test a{display:block;width:83px; line-height:79px;text-decoration:none; border:1px solid #000; text-align:center;}
//这里就是本文最上边写的两种状态的简写详细见下边的注解1,这里定义了两种状态下的背景图片和文字色;
#test a:link,#test a:visited{color:#000;background:url(/upload/20071211191456983.gif);}
//见下边注解1;这里定义了文字色和背景图片还有边框色;
#test a:hover,#test a:active{color:#000;background:url(/upload/20071211191456897.gif); border:1px solid #FF6600;} 
</style>


注解1:

 程序代码
#test a:link,#test a:visited{color:#000;background:url(/upload/20071211191456983.gif);}

这行是简写的形式,不简写应该是这样的:

 程序代码
#test a:link{color:#000;background:url(/upload/20071211191456983.gif);}
#test a:visited{color:#000;background:url(/upload/20071211191456983.gif);}


前边加了一个#test是这些设置只有在ID为test标签下才会有效,这样不会影响其它地方的设置!


 程序代码

//这样写会对全网页的a标签生效;
a:link{color:#000;background:url(/upload/20071211191456983.gif);}
//这样写会覆盖上一行中重复的属性
#test a:visited{color:#000;background:url(/upload/20071211191456983.gif);}



这里一定要注意的是:覆盖上一行中重复的属性 是“覆盖”,并且是“重复的”标签;

例如以下测试代码:

 程序代码
<style>
 /*这里我定义了文字没有下划线,和文字是加粗的,还有文字的色*/
 a:link,a:visited{color:#000099;text-decoration:none; font-weight:bold}
 a:hover,a:active{color:#000;}

 /*看这里,只有文字的色变了,而其它的属性都是继承下来的*/
 #test a:link,#test a:visited{color:#0000FF;}
 #test a:hover,#test a:active{color:#339900;} 
</style>
看效果:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

加载全部内容

相关教程
猜你喜欢
用户评论