Macji Pro2010

记录一些应该记录的东东

我比较喜欢的reset css

September 30, 2008 - by Macji - HTML/CSS/JS/PHP - css, reset

各浏览器的默认样式都并不太一致,所以我们得建立一个reset.css,使各浏览器对各元素的默认属性都一致。reset css这大家都见得多了,对常用的莫过

*{margin:0;padding:0}

YUI的reset

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {
    margin:0;
    padding:0;
}
table {
    border-collapse:collapse;
    border-spacing:0;
}
fieldset,img {
    border:0;
}
address,caption,cite,code,dfn,em,strong,th,var {
    font-style:normal;
    font-weight:normal;
}
ol,ul {
    list-style:none;
}
caption,th {
    text-align:left;
}
h1,h2,h3,h4,h5,h6 {
    font-size:100%;
    font-weight:normal;
}
q:before,q:after {
    content:'';
}
abbr,acronym {
    border:0;
}

这些reset没有最佳的,只有最适合自己项目的。


动手来做我喜欢的reset css,而且也简单的。首先重置你的margin和pading


html, body, div, blockquote, img, label, p, h1, h2, h3, h4, h5, h6, pre, ul,  
ol, li, dl, dt, dd, form, fieldset, input, th, td, a{  
    margin: 0;
    padding: 0;
    border: 0;
    outline: none;
    list-style: none;
}  

重置标题字体大小为100%


h1,h2,h3,h4,h5,h6{
    font-size:100%;
}

设置文字大小100%的基数。


body{
    line-height: 1;  
    font-size: 88%;
}

一般浏览器默认文字大小是1em,大约是16px,那body文字大小88%后,大约14px,所以h系列的大小也在14px左右。如果想给文字设置为12px,那么p{font-size:90%}。
最终重置css


html{/* for firefox */
    overflow:-moz-scrollbars-vertical;
    overflow-x:auto;
}
html, body, div, blockquote, img, label, p, h1, h2, h3, h4, h5, h6, pre, ul,  
ol, li, dl, dt, dd, form, fieldset, input, th, td, a{  
    margin: 0;
    padding: 0;
    border: 0;
    outline: none;
    list-style: none;
}
body{
    line-height: 1;
    font-size: 88%;
}
h1,h2,h3,h4,h5,h6{
    font-size:100%;
}

我这里没有设置字体,具体参照 web 安全字体 吧。上面这些元素是最常用的,但现在用的比较多的有sup、sub、cite等,也可以考虑重置为无表现样式。


扩展阅读:http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/

4 条评论»

给你的WordPress自定义分页

September 10, 2008 - by Macji - HTML/CSS/JS/PHP - php, WordPress, plugin

WordPress自带的分页不好用,只有上一页,下一页。感觉不爽,google了几下,分页插件倒是有,下过来想安装,但感觉代码太多,看了一下 wp-pagenavi 的分页插件,发现它怎么没写SQL,原来是我白痴了一回,$request = $wp_query->request;就能得到,而且$wp_query->max_num_pages就能得到最多页数,有了这个参数,自己写完全没有问题。于是瞎捣鼓写了一个分页。

效果如我博客分页一致,最多显示5个页码,也就是1 2 3 4 5,2 3 4 5 6,3 4 5 6 7这种。那这种分页有三种情况:


  1. 少于或者等于5页时,始终显示1 2 3 4 5

  2. 页数在最后3个页数时,始终显示最后5页

  3. 其他都是加2减2

  4. 附加功能,显示 首页 上一页 下一页 末页,情况在不是第一页和最后一个

那么就可以动手写了。


function mj_pagenav() {
    global $wpdb, $wp_query;
    if (!is_single()) {
        $CycNum = 5;	//最多页数
        $maxPage = $wp_query->max_num_pages;		//最多页数
        $paged = intval(get_query_var('paged')) === 0 ? 1 : intval(get_query_var('paged')) ;	//paged=? 参数
        $Button = array("首页","上一页","下一页","未页");
        if($paged - 2 <= 1){
            $FirstNum   =  1;
            $LastNum   =  min($maxPage, $CycNum);
        }elseif($maxPage - $paged <= 2){
            $FirstNum   =  ($maxPage - 4 == 0) ? 1 : ($maxPage - 4);
            $LastNum   =  $maxPage;
        }else{
            $FirstNum   =  $paged - 2;
            $LastNum   =  $paged + 2;
        }
        //输出 首页 上一页
        echo ( 1 >= $paged ) ? '' 
            : '<a href="' .get_option('siteurl') . '/">' . $ButtonArray[0] . '</a>
                <a href="' .get_option('siteurl') . '/page/' . ($paged - 1) . '/">' . $ButtonArray[1] . '</a>';
        //输出 页码
        for($i = $FirstNum; $i <= $LastNum; $i++){
            if ( $i == $paged ){
                $pageText = '<a href="' .get_option('siteurl') . '/page/' . $i . '/"><em>' . $i . '</em></a>';
            }else{
                $pageText = '<a href="' .get_option('siteurl') . '/page/' . $i . '/">' . $i . '</a>';
            }
            echo  $pageText;
        }
        //输出 下一页 末页
        echo ($max_page == $paged ) ? '' 
            : '<a href="' .get_option('siteurl') . '/page/' . ($paged + 1) . '/">'. $ButtonArray[2] .'</a>
                <a href="' .get_option('siteurl') . '/page/' . ($max_page) . '/">'. $ButtonArray[3] .'</a>';
    }
}

代码比较简单,“上一页 下一页” 我都整在一行,将就着看。把mj_pagenav()放到该放的地方,简单的分页就弄好了,复杂的分页就再加几行代码(我这里把/page/xx写死了,只适应首页哈,搜索和存档等其它页的分页有空再改一下,-__-)。

9 条评论»

Google Chrome的一些

September 5, 2008 - by Macji - HTML/CSS/JS/PHP, 前端开发工具 - css, hack, browser

Google浏览器一出,满世间都在议论它,包括我的阅读器,全在说它。它是一个非常优秀的浏览器,尤其是多线程,让我们打开多个网页不再受浏览器的限制,更多好处请Google Chrome 漫画中文版


那到底为什么叫Chrome?其实我也不知道,我只听说在做mozilla插件(firefox)中,有个叫 chrome://的。金山词霸上说:

CHROME(铬合金)滤镜使用映射图来生成变化多端的,奇妙醒目的真实金属效果,如黄金 效果、银金属效果、铜金属效果及其它各种金属效果,所谓映射图就是解压缩的TIFF ...

显然这不是我们要的答案。好在 独行 给出解释:

最早是用在计算机游戏设计上面,人们会说游戏里一些人物造型很“炫”,就是好看不中用,就管这种“炫”的设计叫Chrome,它原意是铬,可能因为铬都闪闪发光?后来就被科普成代表GUI Graphic User Interface了,都可以叫Chrome,再后来,用在浏览器设计上面,就是说浏览器视窗(window)周边的框,也包括上面的导航条,都叫chrome,象一个金属的框。

用chrome打开任何一个网站,然后再其网站搜索后,再在地址栏键入该网站域名按TAB,将自动搜索该网站内容,貌似chrome很强悍,但在它的地址栏里输入" %: ",却立马崩溃,不知道为什么。另外它自带的几个开发者工具,不怎么好用。


大家都知道它是基于webkit的。有人已经写了它所支持的css选择器。http://www.evotech.net/blog/2008/09/google-chrome-browser-css-selector-support/,该网站也列出了chrome的css hack,当然能用在Safari。hedgerwow以前也列过一个Safari hack,当然chrome也能用。。挖挖。绕啊。


@media screen and (-webkit-min-device-pixel-ratio:0){
	.your_own_selector{
		color:red;
	}
}

1 条评论»

小站更新大记

September 2, 2008 - by Macji - 我的生活 - review

现在博客系统换成WordPress,博客地址为http://www.macji.com/,RSS地址为http://www.macji.com/feed/


也换主机了,感谢 空帷 同学提供主机(上周正愁要不要买MT的主机,那天中午去吃饭的路上,不巧被我听到空帷在喊 “老子有钱,一个人用一个服务器。@#¥%……&×”。喊的好啊,马上跑上去说“我博客放你空间”)。主机是apache的,刚好博客换成WordPress系统(顺便花了点时间做了跟以前一模一样的WP主题),告别以前漏洞百出的自己瞎写的博客。


由于以前买的主机是IIS服务器的,WP不支持IIS的URL重写,网上搜的也写得很麻烦。为了实现URL静态化,于是就想自己写一个算了。那时“冲动”,说干就干了,边看PHP手册边请教PHP达人,遇到很多问题,靠着慢慢琢磨和google,很快程序出来了(我的第三个php程序),系统很简单很简单,那破系统还支持自定义模板呢(挖哈哈)。为了满足我的虚荣心,小秀一下原先的博客系统 ^_^


简单的结构,一目了然,很符合我的个性。

includes目录下就这么几个文件,够轻巧吧。

themes下面放"我所谓"的模板文件,外表都在这里了,跟WP的模板文件差不多。


我更加"骄傲"的是我华丽的后台,

后台首页,然后是我的发表文章的地方,

还可以管理评论哦。

另外值得一提的是,由于懒到家的我,到现在,“友情链接”这功能还没做,我都是手动添加到sidebar.php里去滴。。。


这次博客换成WP了,告别陪伴我半年多的博客系统,以前的数据库结构和WP不一样,手动转了一些文章回来,评论就懒得转了,唉,有点,。。。挖哈哈,难得在博客上写这么多废话,也是值得表扬的,表扬一下麦鸡。

6 条评论»