作者jtmh (惨。累。)
看板Blog
标题Re: [Blogger] 官方版本留言头像功能发布
时间Sat Sep 19 20:22:56 2009
※ 引述《kevin814 (某Ken)》之铭言:
前文恕删
: --题外话
: 改完之後发现favIcon功能跟头像功能似乎是互斥的,不晓得有没有方法两个同时显示O_O
分享一下我目前观察到的一点心得,
有错的话请不吝指教,也欢迎大家一起寻找解法。
以前的 favicon 图示总共有三种,
即 Blogger, OpenID, 以及 匿名人像 三种图示,
它们都是以 16x16 像素的大小显示。
而现在刚推出的头像功能则以 Blogger 帐号的头像为主,
有设头像的话会以 35x35 像素的大小显示,
没设的话就跟以前一样以 16x16 像素大小显示 Blogger 的图示。
但不同的是现在
OpenID 图示 和 匿名人像
都不见了,
取而代之的是 16x16 像素大小的 空白。
更正:OpenID 图示还是跟以前一样以 16x16 像素的大小显示。
照这样来看,理论上 favicon 图示应该是有可能整合进头像功能中的,
比方说在头像功能下可以让
OpenID 图示 和 匿名人像
都再度显示回来,
甚至也可以把 Blogger, OpenID 图示 和 匿名人像 都改以 35x35 像素显示,
不过这样的话也许还要再把那三张图示换成解析度较大的版本。
以上是就概念上的层面来讲的,但实际要去修改时,
就会牵涉到,或者是说,受限於 Blogger 范本中的写法。
以我目前所用的官方范本为例:
<dl
expr:class='data:post.avatarIndentClass' id='comments-block'>
<b:loop values='data:post.comments' var='comment'>
<dt expr:class='"comment-author "
+
data:comment.authorClass' expr:id='data:comment.anchorName'>
<b:if cond='data:comment.favicon'>
<img expr:src='data:comment.favicon' height='16px'
style='margin-bottom:-2px;' width='16px'/>
</b:if>
<a expr:name='data:comment.anchorName'/>
<b:if cond='data:blog.enabledCommentProfileImages'>
<data:comment.authorAvatarImage/>
</b:if>
...
</dt>
...
</b:loop>
</dl>
红色部分是这次头像功能新增的,
第一行在要显示时会动态展开为
class="avatar-comment-indent",
它是用来指定头像排版时要往内缩排多少空间的。
其真正的样式是在一个 Blogger 共用的外部 CSS 档中,
名为 1918764323-widget_css_bundle.css,内容则为:
#comments-block .avatar-comment-indent {
margin-left: 45px;
position: relative
}
#comments-block .avatar-comment-indent dd {
margin-left: 0
}
如果有需要,只要在自己的范本中重复定义该样式,
就可以覆写掉原本的缩排方式。
红色的後三行则是显示头像的关键,
只要有在後台「意见设定」处把「在评论上显示简介图片?」设为「是」,
此处的 if 条件判断式就会成立,
於是中间的
<data:comment.authorAvatarImage/> 就展开成 <div>...</div>。
不过这个展开过程似乎不是我们可以自行更改的 (除非自己完全重新写过),
所以也就无法如前面一开始说要
但我们仍可透过 CSS 把
OpenID 图示 和 匿名人像
都再度显示回来,
甚至把 Blogger, OpenID 图示 和 匿名人像 都改以 35x35 像素显示了。
更正:事实证明我错了,Blogger Buster 上已经有读者留言提出方法:
.avatar-image-container img {
background: url(
http://i860.photobucket.com/albums/ab162/LeBloggerTemplate/LeBlogger.jpg);
width: 35px;
height: 35px;
}
原文网址请参阅 http://tinyurl.com/mqhm53 。
上述的想法遇到问题了,
那麽有可能如原 po 所说的 favicon 图示和头像功能两者同时显示吗?
先再看一次前面官方范本中
绿色的部分:
<dt expr:class='"comment-author "
+
data:comment.authorClass' expr:id='data:comment.anchorName'>
此部分在要显示时会动态展开为下列三者之一:
1. blogger-comment-icon
2. openid-comment-icon
3. anno-comment-icon
这三者刚好分别对应 favicon 的三种图示,可用来指定如何显示这三种图示。
跟前面
红色第一行的情形相同,
其真正的样式也是在 1918764323-widget_css_bundle.css 中,内容为:
#comments .blogger-comment-icon, .blogger-comment-icon {
line-height: 16px;
background: url(/img/b16-rounded.gif) left no-repeat;
padding-left: 20px
}
#comments .openid-comment-icon, .openid-comment-icon {
line-height: 16px;
background: url(/img/openid16-rounded.gif) left no-repeat;
padding-left: 20px
}
#comments .anon-comment-icon, .anon-comment-icon {
line-height: 16px;
background: url(/img/anon16-rounded.gif) left no-repeat;
padding-left: 20px
}
同样的,如果有需要,只要在自己的范本中重复定义该样式,
就可以覆写掉原本的图示与排版。
但是事情并非这麽顺利,就如原 po 所注意到的,
favicon 图示和头像功能似乎是互斥的,问题何在?
我发现在头像功能打开时,上述的
绿色部分就无法再展开成那三种 ...-icon,
而是直接就被「吃掉」(不做任何展开) 了。
那麽,我们能自己手动把本来要展开出来的 ...-icon 加进范本中吗?
因为我们没有其他方式可判断留言者的身分种类,
也就无法知道每一则留言各要加入哪一种 ...-icon,
所以我们最多只能全部都加入同一种 ...-icon,但这样无法达到辨视的效果。
这也是我在原 po 文章中推文提到的问题所在:
我的留言 hack 正是版友 a892245 在
#19KH6-sh 文章的作者回应上色功能,
网页版在
http://lingshu1005.blogspot.com/2008/12/blogger.html ,
该 hack 的特色便是用 blogger-comment-icon 来辨别网志作者。
因为
data:comment.authorClass 不再做任何展开,
结果头像功能一打开该 hack 就破功了,目前也只能先取消头像功能来避开。
最後,要顺带一提的是,前面官方范本中
蓝色的部分:
<b:if cond='data:comment.favicon'>
<img expr:src='data:comment.favicon' height='16px'
style='margin-bottom:-2px;' width='16px'/>
</b:if>
此段目前好像还没有作用,因为我找不出方法能让 if 条件判断式成立。
我猜其中的
data:comment.favicon 有可能是要让我们自订 favicon 图示的,
但在後台设定中似乎又找不到可以设定的地方。
也许几天後这又会是 Blogger 十周年的另一个礼物吧 XD
後记:呼,本来并没有想到会写这麽多,结果写着写着就越写越多了,
後来又觉得都已经写这麽多了,不继续写完前面就白写了,
结果这篇就变成现在这麽冗长的文章了 冏rz
总之,感谢大家看到这里,希望大家多多指教 :)
--
┌────┐国家研究院◆ Academy◆ EarthEnviron◆ Ecophilia环境板 ξF
│ ─┤
│ ├──┬──┬──┬┐┌┬──┬┐ ┌──┬──┐绿色生活,从我开始。
│ ─┤ ┌┤ ││ ─│└┘├┐┌┤│ └┐┌┤ ─ │﹊﹊﹊﹊﹊﹊﹊●﹊﹊
│ │ └┤ ││┌─┤┌┐├┘└┤└─┬┘└┤┌┐│ ●◣◢
└────┴──┴──┴┘█└┘└┴──┴──┴──┴┘└┘▆▅▅▄▃▂▁ ◢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.175.152.137
1F:推 hguei:认真文~推 09/19 21:46
2F:推 kevin814:大推 :D 09/19 21:47
3F:推 inkydark:推! 09/19 22:33
更正 OpenID 图示在头像功能中的显示描述,应该是跟以前一样以 16x16 像素显示。
※ 编辑: jtmh 来自: 218.175.152.137 (09/20 00:21)
4F:推 strellson:.. 09/20 07:55
5F:推 AsDfJJJ:这篇请板主M一下^^ 09/20 12:25
更正关於无法在头像功能中显示匿名人像,甚至把图示都改成 35x35 像素的描述,
Blogger Buster 上已经有读者留言提出以 CSS 的方式来达成该目标。
※ 编辑: jtmh 来自: 218.175.148.125 (09/20 20:43)
6F:推 hguei:强制35*35会使得部分头像变形~所以不是完美解 09/21 21:03
7F:推 kevin814:要保持长宽比好像可以试试看jQuery..又会拖到读取速度orz 09/21 22:30
8F:推 mchen11:好文,但奇怪不m ? 12/15 16:13