作者存档

chrome 浏览器字体大小的问题

2012年9月17日 没有评论

前段时间遇到过页面问题,在一个固定大小的容器中有一大段文字内容,别的浏览器都能正常显示完整,但是google chrome中却发现不能显示完成。追查到原因是设置了字体大小为10px,别的浏览器默认都支持,但是chrome默认情况下是不支持字体大小小于12px,如果小于这个,它会使用12px来代替。据说是为了人性化考虑才有此限制,因为通常字体小于12px看不太清楚,费眼睛。

人性化归人性化,但是还是需要使用12px以下的字体怎么办?很简单,只需要使用:-webkit-text-size-adjust:none; 即可。例如:

//针对某些特定容器不限制
.classname {
	-webkit-text-size-adjust:none;
	...
}

//当前页面所有容器都不限制
*{
	-webkit-text-size-adjust:none;
}
分类: web前端 标签:

nginx 配置子域名的重定向

2012年9月17日 没有评论

目前很多网站可以为用户分配一个自己定义的二级域名,例如:myname.netingcn.com,但实际访问的地址可能为www.netingcn.com/user.php?uid=myname。要使其能正常工作,首先在DSN解析那里需要配置泛域名解析,接下来在nginx配置文件中设置rewrtie即可。nginx配置如下:

server {
    listen      80;
    server_name *.netingcn.com;
	...
	if ($host ~* ^(......)\.netingcn\.com) {
	    set $sub_name $1;
	    rewrite ^/ /user.php?uid=$sub_name last;
	}
	...

这里假设所有的6个字符的子域名都是用户自定义域名,然后对其进行rewrite。另外可以通过set指令把表达式中的某些信息存放在一个变量中,而后可以使用它。

nginx 匹配操作符

2012年9月17日 没有评论

nginx可以在配置文件中对某些内置变量进行判断,从而实现某些功能。例如:防止rewrite、盗链、对静态资源设置缓存以及浏览器限制等等。由于nginx配置中有if指令,但是没有对应else指令,所以判断要分为匹配和不匹配。字符串表达式支持正则表达式,能设定大小写是否敏感。因此共有四个操作符,如下:

  • ~     区分大小写(大小写敏感)匹配成功,可用正则表达式
  • ~*   不区分大小写匹配成功,可用正则表达式
  • !~    区分大小写匹配失败,可用正则表达式
  • !~*  不区分大小写匹配失败,可用正则表达式
  • =     精确匹配普通字符串,匹配成功后停止匹配其他规则
  • ^~  匹配成功后停止匹配其他规则
分类: nginx 标签:

PHP中HTTP_HOST和SERVER_NAME的区别

2012年9月16日 1 条评论

HTTP_HOST是客户端请求时封装在HTTP request header中,而SERVER_NAME是web服务器中配置文件定义的。这两个值有时是相同的,但不能说他们就是一样的,因为这个起决于服务器的WEB server 配置。例如使用nginx作为为web 服务器,配置如下:

server {
	listen      80;
	server_name *.netingcn.com;
	....
}

假设访问 http://www.netingcn.com/test.php,这是使用$_SERVER['HTTP_HOST']得到的结果为:www.netingcn.com,而$_SERVER['SERVER_NAME']则是*.netingcn.com

MySql 获取表的字段名

2012年9月4日 没有评论

mysql安装成功后可以看到已经存在mysql、information_schema和test这个几个数据库,information_schema库中有一个名为COLUMNS的表,这个表中记录了数据库中所有表的字段信息。知道这个表后,获取任意表的字段就只需要一条select语句即可。例如:

select COLUMN_NAME from information_schema.COLUMNS 
where table_name = 'your_table_name';

上述的做法有一点问题,如果多个数据库中存在你想要查询的表名,那么查询的结果会包括全部的字段信息。通过DESC information_schema.COLUMNS可以看到该表中列名为TABLE_SCHEMA是记录数据库名,因此下面的写法更为严格

select COLUMN_NAME from information_schema.COLUMNS 
where table_name = 'your_table_name' 
and table_schema = 'your_db_name';
分类: MySQL 标签:

centos升级python

2012年9月1日 没有评论

centos5.7自带的python版本是2.4,可以通过源代码编译安装的方式来升级到2.7。源代码可以到python的官方网站下载,下载解压后后执行:

./configure
make all
make install
make clean
make distclean

不出意外,应该可以在/usr/local/bin/看到python2.7文件,也就说明2.7安装成功。接下来要做的就是通过软链接的方式让系统默认使用2.7,操作如下:

mv /usr/bin/python /usr/bin/bak_python
ln -s /usr/local/bin/python2.7 /usr/bin/python

现在升级就算完成了,不过由于yum使用的python是2.4这个版本,所有yum不能用了,解决这个问题也很简单,只需要修改/usr/bin/yum文件,把第一行的#!/usr/bin/python换成#!/usr/bin/python2.4即可。

分类: Linux 标签:

secureCRT同时向多个打开的seesion发送命令

2012年9月1日 2 条评论

使用secureCRT的都知道,可以同时打开多个session连接一台或多台服务器,假设需要在两个或以上的服务器上执行相同的操作,例如编译安装相同的软件,最原始的办法就是在每个上执行一遍相同操作。不过可以使用“chat window”的方式来同时向两个服务器发送相同命令。具体操作如为:在view菜单中选中Chat Window,此时在secureCRT最下方会出现一个窗口,在里面点击鼠标邮件,然后选择“Send Chat to All Tabs”,此时在里面输入命令,当前secureCRT打开的所有session都会执行输入的命令。

分类: Linux 标签:

vi中替换操作详解

2012年9月1日 没有评论

vi的强大自不必说了,使用vi编辑文件时可以使用命令快速的实现文本替换。下面介绍它的几种模式

替换当前行第一个OLD为NEW
 :s/OLD/NEW

 替换当前行所以OLD为NEW
 :s/OLD/NEW

 退换当前文件中的所有OLD为NEW
 :%s/OLD/NEW/g

除了上述的几种替换模式,还可以指定两个行号,把他们之间所有的OLD替换称NEW,

语法为,第一个#号表示开始行,第二个#号表示截止行
:#,#s/OLD/NEW/g

替换第三行到第五行所有OLD为NEW
:3,5s/OLD/NEW/g

其中两个行号也可以只出现一个,省略的那个表示为光标所在的行,例如:

:,5s/OLD/NEW/g    把光标所在行到第5行所有OLD替换为NEW

:5,s/OLD/NEW/g    把第5行到光标所在行所有OLD替换为NEW

另外最后一行可以使用$表示,所以
:%s/OLD/NEW/g 等价于  :1,$s/OLD/NEW/g
分类: Linux 标签: ,

Mac屏幕截图快捷键备忘

2012年8月26日 1 条评论

Mac下可以使用command+shift+3组合快捷键来把当前屏幕图像保存在桌面,如果只是需要某个特定的区域,可以用组合键command+shift+4,当按下后鼠标会变成一个十字,这时候就可以选取区域了,取消截图点击右键即可。另外当按下组合键command+shift+4后再按空格键,这时鼠标变成照相机图像,可以对某个窗口、菜单或Dock进行截图。

上述截图都是直接把图片保存到桌面,如果想把图片同时保留在剪切板中,只要在上述组合键的基础上加上一个control键盘即可。例如:command+control+shift+3就把当前屏幕图像保存到桌面,同时剪切板中也存在,可以粘贴到Photoshop中进行编辑了。

分类: 其它 标签: ,

js获取光标在输入框的位置

2012年8月21日 1 条评论

在js获取当前光标在输入框的位置,可以使用如下方法,兼容IE、chrome、firefox以及safari

function getCursortPosition(domObj) {
	var position = 0; 

	if (document.selection) {	//for IE
		domObj.focus();
		var sel = document.selection.createRange();
		sel.moveStart('character', -domObj.value.length);

		position = sel.text.length;
	} else if (domObj.selectionStart || domObj.selectionStart == '0') {
		position = domObj.selectionStart;
	}

	return position;
}
分类: web前端 标签:

无觅相关文章插件,快速提升流量