响应式布局CSS3 Media Queries中屏幕分辨率顺序写法比较

CSS3的Media Queries(媒体查询)在现在的网站开发中已经被应用得越来越频繁,现在但凡开发新的网站,只要不是布局超复杂的项目,不免都要“顺手”做一些响应式布局,尽量以低成本兼容更多的浏览器/设备。现代的移动设备尺寸多样,对于CSS的兼容问题也层出不穷,本文主要探讨Media Queries的分辨顺序问题。从粗略的概念视角开始,不涉及具体的技术细节。 查看详细 »

原生Javascript拖放程序

自己造轮子写个原生拖放,要做到简单调用,考虑拖放对象所在的环境,还要兼容老IE,还是挺锻炼人的。
主要碰到几个问题:

  1. 关于冒泡和阻止默认事件,以前的理解都很粗略,自己写的时候才知要细分。
    一是要阻止事件传递,即事件冒泡,老IE里是ev.cancelBubble=true,其他浏览器是ev.stopPropagation(),要在onmousedown的时候就定义好;
    然后是阻止默认事件,主要是为了防止图片无法拖动的问题,要在onmousemove的时候,老IE里是ev.returnValue=false; 其他浏览器ev.preventDefault()
  2. 拖动过程中鼠标移出物件,就要把事件方法在document上复制一遍:document.onmousemove=_self.onmousemove; 并且考虑到拖放结束的时候鼠标可能是在任意位置,那就干脆把onmouseup方法写在document上
  3. 单纯的拖放物件其实没什么用,实际应用的时候肯定会给拖放增加范围,比如自制的滚动条,幻灯效果等。所以给拖放对象的父级元素作边界。于是又重温了各种位置取值的兼容问题,getBoundingClientRect()是一个很有用的函数,不过在老IE里面取不到宽高,所以要自己计算一下。

查看详细 »

EDM制作兼容经验谈

尽管都是用HTML语言,EDM和网页的制作差别还是随着现代电脑/手机等设备的升级,不断地分化着。可以说EDM是保守的极端,应该完全避免新技术(比如CSS3新属性,HTML5的新元素等)的应用。

总结几条EDM制作最基本的要点:

  • 不能用div布局,更不能用浮动。所有关于布局都用老旧的方法 – table实现,如果有需要可以大表套小表,不过层级还是尽量精简;
  • 不能用百分比来布局,每一个单元格(td)都要用固定宽度,必要时也固定高度。页面内容区宽度推荐600px;
  • 除了图片可以外连,其他一切,包括CSS都不能外链,更禁用iframe这样的页面嵌套;
  • CSS要完全嵌入html元素中,不能写在页头,当然更不能外链。完全不用CSS3的新属性;
  • CSS2中应该禁用的常用属性有float,clear,position,top/left/right/bottom,overflow,z-index 等等…
  • 完全禁用任何形式的Javascript和其他脚本
  • HTML中应该禁用的,除了所有的HTML5新元素外,还有marquee,object,iframe,所有的表单元素和页头元素

查看详细 »

响应式网站项目中的CSS兼容性速记几条

CSS3中的calc变量在iOS6浏览器中必须加-webkit-前缀,目前的FF浏览器已经无需-moz-前缀。
Android浏览器目前仍然不支持calc,所以要在之前增加一个保守尺寸:

1
2
3
4
5
div { 
	width: 95%; 
	width: -webkit-calc(100% - 50px); 
	width: calc(100% - 50px); 
}

查看详细 »

Win2003+IIS6 配置WordPress伪静态详细流程

今天服务器重装系统,又搞了一遍伪静态配置,按照以前的做法,突然不管用了,于是找来以前参照的教程结合自己碰到的问题,详细的把过程梳理一遍才算搞定。
这次我还是用ISAPI Rewrite3这个最常见的插件配置。

步骤1. 下载ISAPI Rewrite3,下载地址【点这里】。远程登录服务器,把插件上传到服务器桌面,双击开始安装,期间一路点下一步,安装到默认目录即可。在我的服务器上默认安装目录为C:\Program Files\Helicon 查看详细 »

Google Map API3地图页面开发笔记

今年年初Google Map就向所有采用API2开发的网站发了通知函,说5月份会停止API2,今后所有的Gmap项目都要基于API3开发,并且建议把API2项目都升级到API3。我公司网站上有一个Gmap的页面,通过读取一个feed实现所有酒店位置的显示,这是页面地址 – http://www.vhr.com/hotels.aspx。 由于太忙,一直都没时间去给这个地图做升级,等到11月,突然发现这个基于API2开发的地图不能用了,而且由于Google关闭了引用的JS,导致连调试都不能了,不得不去研究API3的文档,重新开发了。API2到API3的升级不是简单的几个函数和方法替换的事儿,API3的语法比起API2来显得更加的面向对象,还是整理思路重做吧… 查看详细 »

Win主机下WordPress网站无法使用中文站内搜索问题解决

这个问题困扰我许久,找了无数个网站都没有实质性的解决办法,最后在尝试了N次代码修改后,终于配置成功了。

Win主机下,做好了伪静态,在WP博客的搜索框中输入中文关键词,出来的URL是类似这样的:http://www.abc.com/?s=%ce%b1%be%b2%cc%ac
这样WP就不能返回正确的中文搜索结果。而我需要返回的正确搜索结果应该是这样的:http://www.abc.com/search/伪静态 查看详细 »

为网站添加Windows8磁贴

虽然我自己现在也只是用Win7,在Windows8开始普及之前,有必要为网站做一点小准备。新名词 – Pinned Site,顾名思义就是把自己的网站Pin到别人的Win8桌面上,就像冰箱上的磁贴一样,够酷吧!现在做的人还不多,但相信Win8普及也是迟早的事。正好和老婆一起成立的工作室网站刚刚完成不久,就为这个网站做一批Windows8磁贴吧!

同做favicon一样,微软有自己的生成工具,戳这里:http://www.buildmypinnedsite.com
步骤非常简单,根据指引一步步做,第一步需注意的是图片有4个尺寸,要分别调整,不要漏了。在右侧会自动生成效果预览
为网站添加Windows8磁贴
查看详细 »

WordPress自带主题twentytwelve的CSS学习笔记

现在大部分流行的WP主题都采用了响应式设计(Responsive Web Design),我的博客主题修改自twentytwelve – WP自带的的一个轻量级主题,个人认为它的样式表写法在兼容性上已经做得很好了。今天就来提炼一下其中的精华,也包括一些不太常见的CSS条目。 查看详细 »

快速解决WordPress网站的超时报错问题

最近博客在后台登陆的时候经常发生这样的一个报错
Fatal error: Maximum execution time of 30 seconds exceeded in…
重启一下服务器就好了,但过几天再登陆后台又会报错。很明显是服务器响应超时问题,PHP默认的执行时间是30秒,超过这个时间就会报错。服务器还是不够劲啊!先凑合着用,常规的解决办法也很简单,找到php安装目录下的php.ini,把
max_execution_time = 30
改成60或者更大的值,然后在重启一下IIS就行了。 查看详细 »