星期三 阴雨 23~26℃

input type="submit" 文字垂直居中的例子

今天调一个<input type="submit">在多浏览器兼容文字垂直居中花了不少时间,记录一下。

  • 宽度在 ie6/ie7 下会比较宽,所以加了 width 限定宽度;
  • padding-bottom 是针对 ff 和 opera 的;
  • line-height 是针对 ie 的(注意比 height 少 1px);
  • font-family 使用“宋体”可以提高 1px 的精度(针对 ff)。

<style type="text/css">
.btn { border:1px solid #3b9808; display:inline-block; padding:1px }
.btn input { cursor:pointer; width:180px; font-family:"\5b8b\4f53"; background:transparent; padding-bottom:2px; border:0; height:32px; line-height:31px; font-size:14px; color:#fff; font-weight:bold; background:url(/static/images/btn.png) repeat-x top }
.btn input:hover { background-position:bottom }
</style>
<span class="btn"><input type="submit" value="同意以下协议并注册" /></span>

效果:


js判断手机号码,jQuery ajax 同步获取返回值

<script type="text/javascript">
function checkReg(goNewPage) {
 var regNoteTxt = document.getElementById("regNoteTxt");
 var vcLoginName = document.getElementById("vcLoginName");
 var checkPhone = /^((\(\d{3}\))|(\d{3}\-))?13\d{9}|14\d{9}|15\d{9}|18\d{9}$/;
 //要判断前三位的话可以类似这样写(15开头只允许158/159):15[89]\d{8}(说明:后面的{8}表示前3位 加 后8位,共11位)
 if(vcLoginName.value==""){
  regNoteTxt.innerHTML = "请输入手机号";
  return false;
 }else if(vcLoginName.value.length < 11 || !vcLoginName.value.match(checkPhone)){
  regNoteTxt.innerHTML = "手机号码格式有误,是11位数字,且是以13,14,15,18开头。";
  return false;
 }else{
  var tempNum; //先在 $.ajax 外定义一个变量
  //使用 jQuery 返回字符串,这里注意,不要使用 $.get  要使用 $.ajax 并把 async 设为 false
  //返回的字符串格式:“F该手机号码已被注册” 或 “T该手机号码可用于注册”
  $.ajax({async:false, url:"/checkContactNumberAjax?vcContactNumber="+vcLoginName.value, success:function(result){
   tempNum = result;
  }});
  //不要把下面的判断写在 $.ajax 的回调函数内,否则 return false 会无效
  if(tempNum.substr(0,1) == "F"){
   //该手机已被注册
   regNoteTxt.innerHTML = tempNum.substr(1);
   return false;
  }else{
   //该手机可以注册,用goNewPage参数区分,分别供onsubmit和onblur调用,如果是提交表单,则不需要return false;
   if (goNewPage != 1) {
    regNoteTxt.innerHTML = "<span style=’color:green’>"+tempNum.substr(1)+"</span>";
    return false;
   }
  }
 }
}
</script>
<form action="/quickRegister" method="post" onsubmit="return checkReg(1)">
 <input type="text" name="phoneNum" id="phoneNum" maxlength="11"  onblur="checkReg(0);" />
<div id="regNoteTxt" class="regNoteTxt">&nbsp;</div>
 <input type="submit" value="提交" />
</form>

参考:

2011-11-25 更新:

发现用 async:false 会有一个问题,在点击时页面会卡住一会,直到数据返回。下面这个方法更科学,把执行代码写在回调函数内:

$.ajax({url:"/checkContactNumberAjax?vcContactNumber="+vcLoginName.value, success:function(result){
 //把代码写在回调函数内
 if(result.substr(0,1) == "F"){
  …
 }
}});

2011-12-31 更新:

发现 form 提交仍然要使用 async:false,否则 return false 会无效。


MeYoung

完善“快速注册页”。


友吧今天

隐去“活跃会员”,“热门话题”下移,重新显示“每日阅读”。(版本号:sports index v2.3.1)

星期二 阴雨 24~30℃

JS限制输入框只能输入数字(兼容 IE/FF)

<script type="text/javascript">
function onlyNum(e) {
 //ASCII码:数字0-9(48~57) 数字健盘区0-9(96~105) 退格键(8) 删除键(46)
 if(isFirefox = navigator.userAgent.indexOf("Firefox") > 0){  //FF
  if(!((e.which >= 48 && e.which <= 57) || (e.which >= 96 && e.which <= 105) || (e.which==8) || (e.which==46)))
  return false; 
 } else {
  if(!((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || (event.keyCode==8) || (event.keyCode==46)))
  event.returnValue = false;
 }
}
</script>
<input onkeydown="return onlyNum(event);">

注意:触发时要加 return 和 event

参考:js 输入框只能输入数字 ie ff


blog tag “css/js/html” 更名为“前端”

这个 tag 是去年建的。

 


 

MeYoung

合并“快速注册页”。

星期一 阴(下午下班后暴雨) 24~34℃

“淘宝装修市场申请设计师要先交10000元保证金”引来骂声一片

为了支持女友的店铺,周末在家研究店铺装修,发现系统自带的模板可改度很低;后来发现可以购买模板来修改;再后来发现,如果要使用自己制作的模板,是要先申请设计师

于是申请,但是申请完成后说要缴纳 10000 元保证金。然后搜,搜到这个官方通知:装修市场保证金上线,8 月份刚发布的新规定。

我觉得说这个规定好的基本上是马甲,往后几页看,大部分抱怨的。

为了给自己做个模板,也要先交 10000 保证金?我欠揍了我。

扩展阅读:

  1. 天天坐着不动都能遭遇好事,淘宝,你敢不敢再无耻点?
     
  2. 淘宝 申请设计师 缴10000元保证金

附:淘宝装修市场保证金新规

【通知】装修市场保证金上线
各位设计师:
  为了给卖家更好的购买承诺和提高设计师资质,装修市场联合消费者保障部门实施的保证金项目于8月3日正式上线。

一、建立消保规则的目的
  为了提高装修市场入驻设计师资质,搭建好装修市场这个公平、公正的平台,给消费者提供实际的购物保障。消保生效时间为8月10日。
二、入驻:
1、入驻装修市场设计师交纳保证金统一为10000元/店,主要用于消费者购买模板保障的先行赔付作用。由于10000保证金并非淘宝收取,一直存在于您的支付宝账户中做冻结,所以淘宝不提供收据或发票,敬请谅解。2、加入消保后,调整搜索权重。
3、对于已入驻的设计师采取自愿交纳保证金,未交纳保证金的设计师给予搜索降权处理,不做请退。
4、新入驻设计师必须交纳保证金。
5、账号被冻结的设计师,不允许交纳保证金。
三、如何赔付
此次消保项目第一期首先实现保证金冻结,设计师给予消费者购买信赖,提高设计师入驻资质并将设计师中害群之马清洗出去。
接下来的二期上线,如何进行赔付会跟客服系统做对接,时间会在9月份。
在这之前,不会扣除各位的保证金也不会在显示消保标记,但会在市场首页公告,引导卖家。
四、如何解冻保证金

1、违规设计师被清退,由于设计师违反装修市场的规定被清退,以最后一笔交易的后6个月,解冻保证金。
2、因装修市场模板存在终身售后的特殊性质,入驻的设计师自动申请退出市场,以最后一笔交易的后6个月,解冻保证金。
                                                                            淘宝通知

注意:保证金任何时期都可以交,
辟谣:1、先交的会有市场资源支持,多交会有优势,纯属子虚乌有。
           2、交保证金就能免审核或者快速审核。

[ 此帖被君婥在2011-08-03 18:34重新编辑 ]


接触 HTML5 和 CSS3

公司项目前后端合并时才看到一些陌生标签,查一下,才发现是 html5 的新标签。

参考:

  1. w3school 的 html5 教程
  2. HTML5 常用语法一览(列举不支持的属性)
  3. 52 Framework:第一个HTML5和CSS3的框架
    52framework下载
  4. 让 IE6-8 支持 html5 标签
    下载这个js:http://html5shiv.googlecode.com/svn/trunk/html5.js
    放在 <head> 内(一定要放在 <head> 内):

    <!–[if lt IE 9]>
    <script src="js/html5.js"></script>
    <![endif]–>


学习使用svn

M.c 教的。这玩意对于团队协作很方便,应该学学。


MeYoung

合并 layout。这是合并的第一个文件。Uliweb 使用很便捷,前端标签容易上手。

星期日 阴 25~33℃

电信来换猫,这次服务态度比较好

送的猫电源按钮弹簧有问题,今天来换了个。

这次的态度比上次的好很多。

总结一下,态度好不好其实从预约的电话里就可以听出来。

很久以前在一本书上看过一段:

打电话时,无论是站着、坐着、躺着、是微笑还是哭丧着脸,对方都可以从电话里听出来。这就是上帝赋予人类的感觉。

上门服务,从电话预约的那一刻起,服务就已经开始了。


友吧今天

设计友吧名片。

这辈子的第一张名片,是毕业前几个月在人才市场找到一份工作,一家报社某部门的采编。但是工作一个月后,这个“部门”人去楼空,才知道是一家假借报社名义在外行骗的骗子机构,幸好我在这个月里没有做出业务,要不然损失的就不仅是 108 元的押金和证件工本费了。

第二张名片是在 10 年之后,自己给自己做的这张:

正面

背面

下午发给小庙,下周末过去拿,顺便看看这老鬼。

星期六 上午多云,下午阴(阵风) 27~37℃

iframe根据内容自适应高度

<iframe id=”my_iframe” scrolling=”no” frameborder=”0″ src=”test.html”></iframe>
<script type=”text/javascript”>
window.onload = function() {
var my_iframe = document.getElementById(“my_iframe”);
my_iframe.style.height = my_iframe.contentWindow.document.body.scrollHeight + “px”;
alert(my_iframe.style.height);
}
</script>

参考:http://wenwen.soso.com/z/q283088624.htm

注意:在 chrome 下,要用 http 访问才可以正常显示(传到远程或在本地 iis 等环境中调试)。(参考:http://s.yanghao.org/program/viewdetail.php?i=37213

2013-7-18 更新:

也可以写在 iframe 的 onload 里:

<iframe id=”my_iframe” scrolling=”no” frameborder=”0″ src=”test.html” onload=”this.height=this.contentWindow.document.documentElement.scrollHeight”></iframe>

相关:documentElement 和 body 的区别


骨伤医院(18)

今天比较空,所以院长让坐在她对面的她爸给我看。平常很难抢到老中医的号。

  • 艾灸[艾条灸、天灸](一根)(注:这家医院自己研制的,使用比较麻烦,点燃烟熏)
  • 黑骨藤追风活络胶囊(2盒)
  • 中草药(这次的味道好苦):
    独活 g10,桑寄生 g10,狗脊 g10,川断 g10,杜仲 g10,延胡索 g6,海桐皮 g10,海风藤 g10,蕲蛇▲ g6,炙黄芪 g30,卫茅 g10,三叶青 g15,虎杖 g10

突然觉得天黑得早了

昨天就是凌晨四点左右下了场阵雨,白天还算晴好,下班后明显觉得天黑得快了。


MeYoung

上午和负责后端研发的兼职同事(M.c 的朋友),以及 M.c 的另一位朋友碰了下。后端同事简要解说了后端代码。

星期五 凌晨四点左右阵雨,白天多云 26~37℃

Notepad++ 的 NppFTP 插件设置(含 FTP 匿名用户设置)

对于匿名用户,通常 ftp 工具都有一个勾选“匿名用户”的,但是 NppFTP 没用,一定要手动填入用户名:

anonymous

密码不用填。

附:FTP 默认端口是 21


NppFTP上传文件失败的解决方法

按上面的方法连接上 FTP 后,可以正常下载文件,但是编辑保存文件时提示上传失败:

Upload of D:\software\Notepad++v5.9.3\App\Notepad++\plugins\Config\NppFTP\Cache\ftp@192.168.1.3\templates\index.html failed

网上没有找到这方面的信息,挣扎了一会,发现把 Authentication 选项卡下的 Try private key file authentication (第一项)勾起来就可以了。


NppFTP 缓存路径设置

默认路径是:

%CONFIGDIR%\Cache\%USERNAME%@%HOSTNAME%

例如改为:

E:\www\ftpCache\%USERNAME%@%HOSTNAME%

\%USERNAME% 和 %HOSTNAME% 是两个变量名。


ghost 的 win7 似乎没有像传言中说的那样不稳定

昨天 ghost 的,用到今天没发现有什么异常。也许还需要经过一段时间的验证。

这条日志如果没有后续更新,说明 ghost 的 win7 也是稳定的

就好像以前总是听人说 ghost 的 xp 不稳定,但是我一直都用 ghost 的 xp,挺稳定。


dreamweaver cs5 查找结果不能逐条删除了

本来已经很少用 dw 了,只有在搜索整站的时候会用一下,这个功能比 notepad++ 强很多。但是发现 cs5 对于搜索结果不能一条一条删除了,比较郁闷。以前一直是用 cs3,不知道为什么 cs5 要把这个功能去掉。

我的习惯是这样的:

搜索到一堆记录,然后手动删掉一些记录,剩下的记录是想要的。

但是“手动删除单条记录”的功能在 cs5 里面消失了,只好用回 cs3。


系统学习js(2)

《JavaScript+DOM编程艺术》第二章 之 条件语句 循环语句

加深对循环语句的理解。


女友要开淘宝店了

说了有一两年了,最近拉了网线,更想开了。我看时机也差不多成熟了,好不容易想找点事做,我一定要行动支持才行。

其实。。。。。能坚持半年以上就可以大大出乎我的意料了。


MeYoung

  • 昨天 M.c 搭好了内部服务器。
  • 开始和后端合并。后端用的是 Python 的 Uliweb。
    PS:原来 Uliweb 的作者 limodou 是 M.c 的朋友,啊哦~~ 连我也沾到点点星光了。

星期四 阴转多云 26~38℃

查看哪个服务占用80端口

1、cmd输入:

netstat -ano|findstr "80"

netstat -ano

附:发现一个现象,那个命令 ano 和 aon 似乎是一样的。

2、占用 80 端口(查看“本地地址”那列)的程序的 pid(最后一列数字)。

3、打开任务管理器,“查看”下拉菜单 -> 选择列 -> 选中“PID” -> 确定 -> 回到“进程”列表按 PID 排序,找到 80 端口对应的 PID,就可以看到是哪个程序占用的了。

参考:查看哪个服务占用80端口


APMServ5.2.6的htdocs目录必须存在,否则会提示“Apache启动失败,请检查相关配置”

早上来发现 APMServ5.2.6 的 apache 启动不了,很奇怪,一直以为是 80 端口被占用,但是修改了几个端口都不行。

  • 怀疑是前几天提到的 netbox 冲突的原因,但是弄来弄去也没有解决。
  • 重新下载 APMServ5.2.6,除了 www 和 MySQL5.1 目录外,其他全部覆盖,结果还是不能启动 apache;
  • 实在没办法,ghost。但是杯具的是,ghost 了也还是没有解决问题。

最终在 这里 找到问题了:

启动 APMServ 时保证 htdocs 目录存在

原因:我把 htdocs 改成了别的名称,使用虚拟主机的方式来指向这个新目录。

结论:无论 htdocs 目录是否为空,都要保证这个目录存在。


系统学习js(1)

以前学的都很零碎,今天开始系统的学习。

《JavaScript+DOM编程艺术》

第一章:JavaScript 简史

js 的春天来得真不容易。

第二章:JavaScript 语法

定义变量有多种写法;
对数组有了更深的认识。

今天看到第二章的“变量 – 数组”。

这是一本让人想一口气看完的书,不愧是卓越上的畅销书。

对自己有用的知识,还是要系统的学一下为好;零碎的学,终究只是零碎的,其实还有很多基础的东西都不知道。


友吧今天

  • 首页活动:排序可控。
  • 昨天下班在公交上想到“场馆体验”这个版块。
  • 导航“微博”改回“心情”。
  • 今晚临时作的决定:
    隐去首页“教学与心得”、“运动与健康”版块,所有话题在顶部版块显示,以减小更新量。
    隐去首页“每日阅读推荐”,上提“近期热门话题”。

第1184天:Nginx的一些知识

星期三 阴转多云 28~37℃

Nginx的一些知识

公司用的是 Nginx 服务器,了解一些知识。

星期二 多云 28~38℃

什么情况下该开启Keep-Alive?

这几天一直有个弄不明白的问题:

既然 IDC 坚称已经打开了 Keep-Alive,而我在 IIS 里也启用了“保持 HTTP 连接”,为什么用 page spead 检测还是没有显示成功启用呢?弄不明白,要么 IIS 还要进行更繁琐的设置,要么 IDC 那边根本没有打开这个功能。

因为一直没有成功开启 Keep-Alive,所以查了很多这方面的资料。今天查到原来 Keep-Alive 并不是打开就是好的,还要分情况:

参考资料:什么情况下该开启Keep-Alive?

1、当你的Server内存充足时,KeepAlive=On还是Off对系统性能影响不大。

2、当你的Server上静态网页(Html、图片、Css、Js)居多时,建议打开KeepAlive。

3、当你的Server多为动态请求(因为连接数据库,对文件系统访问较多),KeepAlive关掉,会节省一定的内存,节省的内存正好可以作为文件系统的Cache(vmstat命令中cache一列),降低I/O压力。

PS:当KeepAlive=On时,KeepAliveTimeOut的设置其实也是一个问题,设置的过短,会导致Apache频繁建立连接,给Cpu造成压力,设置的过长,系统中就会堆积无用的Http连接,消耗掉大量内存,具体设置多少,可以进行不断的调节,因你的网站浏览和服务器配置而异。

星期一 多云 35~27℃

调试工具:用来代替 IIS 的 NetBox

Motorcure 推荐的一款小工具。

找了下,网上找到的是安装包,安装好后要进行一些设置,比较麻烦。

M.c 发给我的是绿色的,很方便,哪个目录需要调试,就在那个目录放一个这个文件,然后双击它,会弹出一个带端口号的 localhost 网址,默认是 80 端口,如果 80 端口被占用,则会自动使用随机端口。

注:

  1. 调试不同目录,需要先退出之前打开的 NetBox(在 Windows 右下角任务栏)
  2. 首页默认文档: index.asp; index.htm; index.html; default.asp; default.htm; default.html

附:绿色版下载(文件很小,只有 600 多 K)


今天才会用 APMServ 的“虚拟目录”和“虚拟主机”功能

以前不知道怎么设置虚拟目录,今天知道了。

Apache设置 -> 虚拟目录管理

弹出“添加新虚拟目录”的界面,必填的两项是“虚拟目录名称”和“网页文件根目录”。

例:虚拟目录名称设置为“test”,则通过以下地址访问该目录:http://localhost/test/

网页文件根目录是指本地的网站目录(可以放在任意地方)。

如果要修改已经设置好的虚拟目录,点右上角的“添加新虚拟目录”旁边的下拉箭头选择。

设置“虚拟主机”和设置“虚拟目录”类似

Apache设置 -> 虚拟主机管理

必填的两项是“虚拟主机域名”和“网页文件根目录”。

例:虚拟主机域名设置为“test.com”

特别要注意的是,需要在 hosts 文件里设置该域名:

127.0.0.1    test.com

保存 hosts 文件后重启浏览器,输入 http://test.com 即可访问该目录。

注:以上操作均需手动重启 APMServ(先停止,后启动)。


shtml 中的 include file 与 include virtual

简单的理解,include file 是包含相对路径的文件,include virtual 是包含绝对路径的文件。

如:

<!–#include file="inc_foot.html"–>
<!–#include virtual="/test/inc_foot.html"–>

参考搜索:shtml中include file与include virtual的区别


YSlow(3.0.3)和 Firebug(1.8)不兼容

临时方法:要使用 YSlow 的时候,把 Firebug 暂时禁用,重启 FF。

参考:http://mozilla.com.cn/qa/user/Q.16305/


MeYoung

  • 搭建本地环境。
  • 处理首个模板页。
  • 上周四来面试的小伙今天来上班了,现在办公室有四个人了。

友吧今天

家里网络好了,恢复更新。