我在WordPress主题中的圆角实现

我也喜欢带点圆角的主题,而在模板设计中要实现圆角有着很多的方法。最简单的是CSS 3的方法,在网上搜索一下也很多介绍,但在旧的浏览器下不支持;还有就是利用js来实现,虽然我自己也喜欢用JQuery实现一些效果,却不知道为什么就是不喜欢把圆角的实现也交予它。我一直以来都是通过小图片来实现的,或者应该说是CSS SPRITES这种实现方法。

css sprites corner 0 我在WordPress主题中的圆角实现

因为通过CSS SPRITES这个方法,圆角的图片都是整合到主题所带的背景图片中,所以我觉得它并不浪费,反正一个主题肯定就要带上背景图片的;我也在网上看到过很多说是CSS SPRITES的方法介绍,但我都没有认真看,或者它们所说的跟我一直以来实现的方法相同;尽管这样,我也写写我自己喜欢的圆角实现吧。

首先是在需要实现圆角的部分,添加一组DIV,分别代表左上,右上,左下,右下圆角的位置;而它们的放置位置是你需要实现圆角样式的那一个DIV。比如在我的主题中,紧接<body>的那一个DIV就是我要添加圆角的:

<div id="wrapper">
...
</div>

添加四角区块,并为它添加一个class:"encadre"。

<div id="wrapper" class="encadre">
<div class="tl"></div>
<div class="tr"></div>
<div class="bl"></div>
<div class="br"></div>

...
</div>

然后在主题的样式文件中添加下面的代码:

#wrapper .tl{background:url(imgs/allbgs.png) no-repeat -582px 0;}
#wrapper .tr{background:url(imgs/allbgs.png) no-repeat -591px 0px;}
#wrapper .bl{background:url(imgs/allbgs.png) no-repeat -582px -9px;}
#wrapper .br{background:url(imgs/allbgs.png) no-repeat -591px -9px;}
.encadre{margin:0;padding:0;position:relative;}
.encadre .tl,.encadre .tr,.encadre .bl,.encadre .br{font-size:0px;height:9px;line-height:1px;overflow:hidden;position:absolute;width:9px;}
.encadre .tl{background-position:left top;left:0;top:0;}
.encadre .tr{background-position:right top;right:0;top:0;}
.encadre .br{background-position:right top;bottom:0;right:0;}
.encadre .bl{background-position:left top;bottom:0;left:0;}

大家从上面红字的height和width数值知道,我要实现的圆角半径是9个px。

接下来要做的是画一下圆角的图片了,利用photoshop,在主题原有的背景图片中(假设你和我一样只使用一张背景图片)或者新建一个背景图片,名字叫:allbgs.png。

在allbgs.png中画上一个半径是9px的圆。这里的圆颜色是你添加圆角所在区域的颜色,如我的模板是白色的,所以圆就是白色;圆外的颜色是你的body或者是你添加圆角区域的外围颜色,如我的背景颜色是#f7f7f7,所以圆外颜色就是#f7f7f7。

css sprites corner 1 我在WordPress主题中的圆角实现

最后就是修改一个样式中圆角图片的所在位置,我们需要的是找出四个顶点的位置,并把它们在上面样式代码中表现出来。这一步不难,大家对比一下上面的代码中的数字和下图的关系就知道怎样做了。

css sprites corner 2 我在WordPress主题中的圆角实现

我自己比较喜欢这个方法,基本上实现不难;而且在各个浏览器下都不会出现显示的问题。另外因为它本来就附在需要加载的背景图片中,所以也不会产生说什么图片加载太多速度变慢的情况,本来这个小圆角的图片体积就小得可以不计较了,不是吗?

分类:theme skill, WordPress;标签:, , ;收藏本文的永久链接

36 Responses to “我在WordPress主题中的圆角实现”

  1. welee 回复此留言 2009/06/16 20:03 #comment-8086

    我也是radius-border,不理了ie了。

  2. blacktulip 回复此留言 2009/06/16 17:56 #comment-8073

    这方法不错,稍麻烦了点,不过总比跟ie6干仗好

  3. Jinwen 回复此留言 2009/06/16 17:58 #comment-8074

    @blacktulip 不麻烦啊,我觉得很方便的呢。

  4. blacktulip 回复此留言 2009/06/16 18:01 #comment-8075

    @Jinwen 要开ps啊...

  5. evan 回复此留言 2009/06/16 18:28 #comment-8077

    自己的blog,就直接radius-border啦,管它ie去死

    • riant 回复此留言 2010/03/03 13:45 #comment-13160

      是这样的,IE去死吧,不过,现在做其他项目,不能叫IE 去死啊,这种方法,诶,四个空标签,还是有点碍眼。呵。我好像有代码洁癖了。

  6. Jinwen 回复此留言 2009/06/16 18:49 #comment-8078

    @evan 呵呵,我就是自己的blog,所以就直接css sprites了。。。

  7. key4ever 回复此留言 2009/06/16 18:52 #comment-8079

    不错!

  8. key4ever 回复此留言 2009/06/16 18:52 #comment-8080

    @evan 哈哈,同意这位同学

  9. evan 回复此留言 2009/06/16 18:53 #comment-8081

    懒才是科技发展的源动力啊

  10. Jinwen 回复此留言 2009/06/16 20:09 #comment-8087

    @welee 哎,其实自己也想不理不理,但对于一个完美主义者,还是不能不理,折腾。。。

  11. 爱月 回复此留言 2009/06/17 03:29 #comment-8102

    爱月即将搞定的一个专题页面打算全面屏蔽IE6及IE6以下版本了,嗯嗯,很伟大~

  12. 小墨 回复此留言 2009/06/17 02:46 #comment-8100

    我博客的圆角就是firebug看你代码学的,呵呵
    不过初次做,出现好些问题

    还有就是div套div,里面的div就定位不上了。

  13. huary 回复此留言 2009/06/17 03:01 #comment-8101

    可惜我对CSS不了解,不过看上去似乎并不是很麻烦。收藏了。
    ps:jinwen同学真是圆角爱好者啊。

  14. 随影 回复此留言 2009/06/17 11:13 #comment-8107

    方法 不错啊 , 兼容性好 !!

  15. ZH CEXO 回复此留言 2009/06/17 07:13 #comment-8103

    同楼上,也有此打算~

  16. zwwooooo 回复此留言 2009/06/17 07:27 #comment-8104

    我直接不圆角,够懒吧——完美主义懒人者

  17. Jinwen 回复此留言 2009/06/17 07:36 #comment-8105

    @爱月 支持!
    @zwwooooo 其实不圆角也好看的,只是自己有时候就是想变一下。现在主题的黑色版本就是没有圆角了。

  18. i.Nemo 回复此留言 2009/06/17 15:15 #comment-8122

    嘿嘿~~
    我又来偷师了~~~
    就是不想用圆角图片~~折磨死我自己算了~

  19. Showfom 回复此留言 2009/06/18 07:13 #comment-8155

    不仔细看还看不出来的呢

  20. ucax 回复此留言 2009/06/18 09:44 #comment-8175

    兄弟這主題什麼時候發佈!

  21. Jinwen 回复此留言 2009/06/18 17:28 #comment-8193

    @ucax 我也不知道,很多地方还没有OK下来。

  22. willin 回复此留言 2009/06/19 18:44 #comment-8229

    用圖形實現的, 不錯啊! 我也用了.
    上面用 jQ 變換 css 效果也不錯, 回家我也要搞一個..

  23. eddie 回复此留言 2009/06/20 17:37 #comment-8276

    不错不错...那个圆不错

  24. Centeur 回复此留言 2009/06/22 03:47 #comment-8297

    不错的方法。

  25. AG 回复此留言 2009/06/26 01:45 #comment-8351

    收藏先
    使用别人的主题,对CSS一窍不通,只好修修补补,一点一点的啃了

    啥时候咱能自己弄套主题~~~

  26. Jinwen 回复此留言 2009/06/26 09:08 #comment-8354

    @AG 这样折腾才有乐趣啊。

  27. disinfeqt 回复此留言 2009/07/04 19:22 #comment-8452

    最近沉迷CSS Sprites 很好很强大的用法
    但是我始终觉得用PS处理起来别扭的很
    比如计算px啊切割啊合并啊...
    您是如何制作a和a:hover的呢?有没有便捷的方法?

  28. Jinwen 回复此留言 2009/07/04 19:35 #comment-8453

    @disinfeqt 我自己 a 和 hover的方法都是css sprite的,就是在a:hover 的属性中把background的图片位置改一下就可以了,总的来说还是只用一张背景图片;这样的做法不复杂的,而且对网站加载速度很大帮助。

  29. disinfeqt 回复此留言 2009/07/04 20:06 #comment-8455

    @Jinwen OK...那些我已经知道了,实际上我已经做了很多homework lol...
    我想知道的是advanced一点的技巧,比如在PS里切一张图对我来说就很麻烦...可能我还没习惯用标尺工具 =。=

  30. Jinwen 回复此留言 2009/07/04 20:15 #comment-8456

    @disinfeqt 但是标尺是每个设计工具中最基本的啊,一定要用它的呢。习惯了就好。其实很好用的。

  31. disinfeqt 回复此留言 2009/07/04 20:17 #comment-8457

    @Jinwen Well, I'll try to get it right :)
    Thx for your advice.

  32. 小明猪 回复此留言 2009/07/08 15:12 #comment-8528

    @welee 正解~

    • Jinwen 回复此留言 2009/07/09 00:46 #comment-8536

      话虽如此,但还是放不下IE的,想想都头大,这个历史问题啊。

  33. WildCat 回复此留言 2011/05/05 12:59 #comment-18875

    请教,你后面几张图里量尺寸的是什么工具/插件?

    • Jinwen 回复此留言 2011/05/10 21:21 #comment-19021

      是photoshop来的,如果在网页上推荐用这个http://www.sprymedia.co.uk/article/Design