请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 4765|回复: 11

[教程] 53个CSS技巧翻译之PDF,ZIP,DOC链接的标注 [复制链接]

sexboy024 楼主
帖子
126
体力
103
威望
5
发表于 2007-3-20 10:15:46 |显示全部楼层
PDF,ZIP,DOC链接的标注 36/53
英文链接 http://www.maratz.com/blog/archives/2005/01/13/pdf-links-labeling/
中文链接 http://www.176so.com/past/2007/3/17/pdf_links_labeling/

有时候我们希望能明确的用小图标来标明我们的超链接的类型。是一个zip文档还是一个pdf文件。这样访问者就知道他所要点击的这个链接是下载而不是打开另一个页面了。如果所有的人都使用IE7或者FF的话。我们完全可以使用[att$=val]属性选择器,寻找以特定值(比如.zip和.doc)结尾的属性。

  1. a[href$=".pdf"] { padding-right: 19px; background: url(pdf.gif) no-repeat 100% .5em; }
  2. a[href$=".zip"] { padding-right: 17px; background: url(zip.gif) no-repeat 100% .5em; }
复制代码


不幸的是IE6以下浏览器不支持属性选择器。好在,可以通过在每个元素中添加类,使用JavaScript和DOM实现相似的效果。

下面给出了一个解决办法:

  1. function fileLinks() {
  2.     var fileLink;
  3.     if (document.getElementsByTagName('a')) {
  4.         for (var i = 0; (fileLink = document.getElementsByTagName('a')[i]); i++) {
  5.             if (fileLink.href.indexOf('.pdf') != -1) {
  6.                 fileLink.setAttribute('target', '_blank');
  7.                 fileLink.className = 'pdfLink';
  8.             }
  9.             if (fileLink.href.indexOf('.doc') != -1) {
  10.                 fileLink.setAttribute('target', '_blank');
  11.                 fileLink.className = 'docLink';
  12.             }
  13.             if (fileLink.href.indexOf('.zip') != -1) {
  14.                 fileLink.setAttribute('target', '_blank');
  15.                 fileLink.className = 'zipLink';
  16.             }
  17.         }
  18.     }
  19. }
  20. window.onload = function() {
  21.     fileLinks();
  22. }
复制代码


当然,你需要在你的css文件中,增加这几个css类:

  1. .pdfLink { padding-right: 19px; background: url(pdf.gif) no-repeat 100% .5em; }
  2. .docLink { padding-right: 19px; background: url(doc.gif) no-repeat 100% .5em; }
  3. .zipLink { padding-right: 17px; background: url(zip.gif) no-repeat 100% .5em; }
复制代码


效果

最后一点建议,你的小图标不要过分醒目,这会分散浏览者的注意力。

补充:我的空间每个月的流量有限。并且本懒人更新很慢。如果你觉得文章对你有用,请随意将内容复制粘贴到你的站内。但请注明来源。以便多给我带来几个IP。*_*

[ 本帖最后由 sexboy024 于 2007-3-20 14:58 编辑 ]
已有 1 人评分威望 收起 理由
小毅 + 3 非常实用的技巧

总评分: 威望 + 3   查看全部评分

小宇宙爆发
西部数码顶级域名注册商39元抢注!

有点累

银牌会员 手机认证 

帖子
422
体力
1440
威望
0
居住地
湖北省 武汉市
发表于 2007-3-20 10:40:28 |显示全部楼层
顶下
不错
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

blank 

怿飞

荣誉管理

帖子
2375
体力
12545
威望
125
居住地
浙江省 杭州市
发表于 2007-3-20 14:25:45 |显示全部楼层
请把题目重新该下,容易让偶产生误会! 加个破折号说明下
个人Blog:PlanABC   团队Blog:淘宝UED  专注Web前端技术!

使用道具 举报

随枫飘月

银牌会员

帖子
753
体力
1698
威望
4
居住地
山东省 济南市
发表于 2007-3-20 16:10:44 |显示全部楼层
我咋打不开预览效果呢······

使用道具 举报

sexboy024 楼主
帖子
126
体力
103
威望
5
发表于 2007-3-20 18:20:54 |显示全部楼层
空间商 崩溃了。
可能明天会好?
小宇宙爆发

使用道具 举报

夢之譜

管理员

帖子
7193
体力
28202
威望
237
居住地
美洲 美国
发表于 2007-3-21 01:57:49 |显示全部楼层
★经典夜游神

使用道具 举报

帖子
2
体力
8
威望
0
发表于 2007-3-21 07:19:58 |显示全部楼层

谢谢

不错,收藏!



深圳网络公司:http://www.kingdeone.com

使用道具 举报

一滩死水

钻石会员

帖子
1063
体力
7305
威望
0
发表于 2007-3-21 09:46:26 |显示全部楼层
非常不错。
我一直哭一直哭,哭我没鞋穿。直到有一天我看到一个人,他连脚也没有……

使用道具 举报

帖子
150
体力
693
威望
0
居住地
浙江省 杭州市
发表于 2007-3-22 11:41:59 |显示全部楼层
遍历所有的a 些js会不会使页面有些慢.
http://www.rpple.com

使用道具 举报

sexboy024 楼主
帖子
126
体力
103
威望
5
发表于 2007-3-22 15:11:01 |显示全部楼层
在IE中,window.onload事件会在页面其它元素被加载完毕之后立即触发,而FireFox里的window.onload事件会等待动态添加的那些脚本文件也被加载完毕后才触发。

这对专业的脚本开发人员可能有影响,但我们只需要知道,这段js代码是在页面元素都载入完毕,内容已经显示出来之后才执行,也就是说访客先看到了文字链接,然后(根据网速,机器等条件限制)延迟那么一下,才能看到链接后面的修饰图片。FF下因为已经在css中定义过了,所以一般不会出现延迟效果(除非网速巨慢,css没加载完)。这段js基本上只是为ie6准备的。

结论:哥们,您就放心用吧!
小宇宙爆发

使用道具 举报

永远的火狐狸

中级会员

帖子
280
体力
617
威望
0
发表于 2007-3-23 18:15:57 |显示全部楼层

改进了一下,把outlinks的功能加进去了,图标方前边了。

  1. <script language="JavaScript" type="text/javascript">
  2. function linkFilter() {
  3.         var SiteURL = "www.shareday.com";
  4.         var linkURL;
  5.         if (document.getElementsByTagName("a")) {
  6.                 for (var i = 0;(linkURL = document.getElementsByTagName("a")[i]); i++) {
  7.                         if (linkURL.href.indexOf(SiteURL) == -1) {
  8.                                 linkURL.setAttribute("target", "_blank");
  9.                         }
  10.                         if (linkURL.href.indexOf(".pdf") != -1) {
  11.                                 linkURL.className = "link pdf";
  12.                         }
  13.                         if (linkURL.href.indexOf(".doc") != -1 || linkURL.href.indexOf(".docx") != -1) {
  14.                                 linkURL.className = "link doc";
  15.                         }
  16.                         if (linkURL.href.indexOf(".zip") != -1 || linkURL.href.indexOf(".rar") != -1) {
  17.                                 linkURL.className = "link zip";
  18.                         }
  19.                 }
  20.         }
  21. }
  22. window.onload = function() {
  23.         linkFilter();
  24. }
  25. </script>

  26. <style type="text/css">
  27. .link{
  28. height:16px;
  29. padding-left: 19px;
  30. }
  31. .pdf{
  32. background: url("famfamfam_silk_icons_v013/icons/page_white_acrobat.png") no-repeat .1em 0em;
  33. }
  34. .doc{
  35. background: url("famfamfam_silk_icons_v013/icons/page_white_word.png") no-repeat .1em 0em;
  36. }
  37. .zip{
  38. background: url("famfamfam_silk_icons_v013/icons/page_white_zip.png") no-repeat .1em 0em;
  39. }
  40. </style>
复制代码


使用famfamfam的silk图标效果更好。

使用道具 举报

帖子
34
体力
79
威望
0
发表于 2007-3-23 20:31:22 |显示全部楼层
可以设定在链接上加图标吗?

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-13 09:34 , Processed in 0.146170 second(s), 11 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部