定义页面中的链接样式
最近读《精通CSS》一书,学了不少知识。前两天给博客的链接添加了一些样式,因为本身博客主题的链接就不怎么显眼,这样也是想给读者更多方便,同时让博客的样式更加丰富好玩。
我根据不同的链接,设定了不同的显示效果,如下图。
本来这些如果都用class实现可能也不麻烦,但是每次添加链接都要设定一个类很累。所以我用CSS里的“属性选择器”来通过rel来给链接赋予不同效果。需要注意的是,IE6并不支持这些代码,应避免将这类代码用在重要功能上。如果要兼容IE6只能结合class来实现。
链接分类图里,external是让链接在新窗口打开,相比使用target="_blank"这样符合W3C的标准。用代码实现起来很简单(不然我就不用这代码了 🙂 )。
a[rel~="external"] {
background:url(images/icon_link.gif) no-repeat;
padding-left:16px;
}
.attachment {
background:url(images/icon_attachment.gif) no-repeat !important;
padding-left:16px;
}
第一句是给所有rel属性包含external的链接添加一个小图标。如果你的页面还在用target="_blank"属性,最好自己修改为rel="external"这样。修改教程请见Shawn的教程。不然请用这样的代码
a[target="_blank"] {
background:url(images/icon_link.gif) no-repeat;
padding-left:16px;
}
第二句由于附件也有external属性,所以给附件.attachment的background加了一个!important。
这样链接基本不用管,只需要给附件链接添加一个class="attachment"属性就可以啦。
还有一点,要给css指向比较详细的路径,不然所有链接都将应用这个样式。
我是用下面的代码,这个代码只适用于我自己的主题
#wrapper #frame #content #left .entry .post p a[rel~="external"],
#wrapper #frame #content #left .entry .post > ul a[rel~="external"],
#wrapper #frame #content #left .entry .post > quote a[rel~="external"],
#wrapper #frame #content #left .entry .post > ol a[rel~="external"] {
background:url(images/icon_link.gif) no-repeat;
padding-left:16px;
}
#wrapper #frame #content #left .entry .post p .attachment,
#wrapper #frame #content #left .entry .post > ul .attachment,
#wrapper #frame #content #left .entry .post > quote .attachment,
#wrapper #frame #content #left .entry .post > ol .attachment {
background:url(images/icon_attachment.gif) no-repeat !important;
padding-left:16px;
}
好了,就写这么多,哪里没说明白我再继续补充。
哇,好专业!我占沙发~~
2009-03-14 19:31 | #1偽類的樣式可惜IE6不支持[rel~="external"]這類的啊。
2009-03-14 20:37 | #2不過要讓類為external的鏈接在新窗口打開還需要配合js的,否則這只是一個類標記。
嗯 主要就是想写用属性选择器改链接的样式,external那个我是比着shawn的教程弄得~应该扔个链接的,我改改。
2009-03-14 20:49 | #3不错,我现在已经把我站内的链接全是external了。在利用jquery设置新窗口打开,在用数据库批量替换target.
2009-03-14 22:16 | #4汗。。。我在别人启用gravatar的博客里都无法显示,就在你博客和@leehow的博客里可以显示。。。我就纳闷。。。
2009-03-14 22:17 | #5上天的旨意,让你在我这多留言
2009-03-15 11:05 | #6主要想学习一下内页设置。。前台看不到。
2009-03-16 09:25 | #7😐 啥意思哇。。
2009-03-16 12:55 | #8😯 完全看不懂……哈哈
2009-03-17 10:49 | #9