一、PC网站自动适配手机
网页的7个步骤一般来说,移动适配主要通过底层的WEB技术开发手段来完成,下面马海祥将通过移动适配技术的角度来告诉你通过7个步骤来完成一个PC网站向移动设备的跳跃!1、允许网页
宽度自动调整“自适应网页设计”到底是怎么做到的?其实并不难。首先,在网页
代码的头部,加入一行VIEWPORT元标签,VIEWPORT是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(WIDTH=DEVICE-WIDTH),原始缩放比例(INITIAL-SCALE=1)为1.0,即网页初始大小占屏幕面积的100%。所有主流浏览器都支持这个设置,包括IE9,对于那些老式浏览器(主要是IE6、7、8),需要使用CSS3-MEDIAQUERIES.JS。2、不使用绝对宽度由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素,这一条非常重要。具体说,CSS代码不能指定像素宽度:WIDTH:XXXPX只能指定百分比宽度:WIDTH:XX%或者WIDTH:AUTO3、相对大小的字体字体也不能使用绝对大小(PX),而只能使用相对大小(EM)。BODY{FONT:NORMAL100%HELVETICA,ARIAL,SANS-SERIF}上面的代码指定,字体大小是页面默认大小的100%,即16像素。H1{FONT-SIZE:1.5EM}然后,H1的大小是默认大小的1.5倍,即24像素(24/16=1.5)。SMALL{FONT-SIZE:0.875EM}SMALL元素的大小是默认大小的0.875倍,即14像素(14/16=0.875)。4、流动布局(FLUIDGRID)“流动布局”的含义是,各个区块的位置都是浮动的,不是固定不变的。.MAIN{FLOAT:RIGHTWIDTH:70%}.LEFTBAR{FLOAT:LEFTWIDTH:25%}FLOAT的好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向OVERFLOW(溢出),避免了水平滚动条的出现。另外,绝对定位(POSITION:ABSOLUTE)的使用,也要非常小心。5、选择加载CSS“自适应网页设计”的核心就是CSS3引入的MEDIAQUERY模块,它的意思就是,自动探测屏幕宽度,然后加载相应的CSS文件。MEDIA=”SCREENAND(MAX-DEVICE-WIDTH:400PX)”HREF=”TINYSCREEN.CSS”/>上面的代码意思是,如果屏幕宽度小于400像素(MAX-DEVICE-WIDTH:400PX),就加载TINYSCREEN.CSS文件。MEDIA=”SCREENAND(MIN-WIDTH:400PX)AND(MAX-DEVICE-WIDTH:600PX)”HREF=”SMALLSCREEN.CSS”/>如果屏幕宽度在400像素到600像素之间,则加载SMALLSCREEN.CSS文件。除了用HTML标签加载CSS文件,还可以在现有CSS文件中加载。6、CSS的@MEDIA规则同一个CSS文件中,也可以根据不同的屏幕分辨率,选择应用不同的CSS规则。@MEDIASCREENAND(MAX-DEVICE-WIDTH:400PX){.COLUMN{FLOAT:NONEWIDTH:AUTO}#SIDEBAR{DISPLAY:NONE}}上面的代码意思是,如果屏幕宽度小于400像素,则COLUMN块取消浮动(FLOAT:NONE)、宽度自动调节(WIDTH:AUTO),SIDEBAR块不显示(DISPLAY:NONE)。7、图片的自适应(FLUIDIMAGE)除了布局和文本,自适应网页设计还必须实现图片的自动缩放。这只要一行CSS代码:IMG{MAX-WIDTH:100%}这行代码对于大多数嵌入网页的视频也有效,所以可以写成:IMG,OBJECT{MAX-WIDTH:100%}老版本的IE不支持MAX-WIDTH,所以只好写成:IMG{WIDTH:100%}此外,WINDOWS平台缩放图片时,可能出现图像失真现象。这时,可以尝试使用IE的专有命令:IMG{-MS-INTERPOLATION-MODE:BICUBIC}或者,ETHANMARCOTTE的IMGSIZER.JS。ADDLOADEVENT(FUNCTION(){VARIMGS=DOCUMENT.GETELEMENTBYID(“CONTENT”).GETELEMENTSBYTAGNAME(“IMG”)IMGSIZER.COLLATE(IMGS)})最好还是做适配分辨率的图片,有很多方法可以做到同样效果,服务器端和客户端都可以实现(具体可查看马海祥博客《根据访问设备自动识别展示手机站或PC站的方法》的相关介绍)。二、适配最常见的操作方法据马海祥观察,PC站和手机站匹配最常用的几种方法是移动适配、JS跳转、META声明、302规则等等,由于每种方法的操作方式不同,产生的效果也不同,具体的优缺点也需要区别对待,在此,马海祥就给大家比较一下这4种适配方法的优缺点以及需要注意的地方:1、移动适配现在很多搜索引擎都提供移动适配的功能,例如百度的开放适配和360的移动适配,利用百度站长工具提交PC页-手机页对应关系SITEMAP,或者利用360站长工具提交PC页-手机页对应关系TXT就能实现PC站内容和手机站一一适配。这样做的优点是只需要在搜索引擎工具提交资料,无需对站点本事做改动,而且网站内容一一对应,并不只局限于网站首页。缺点就是只能在百度或者360移动搜索中生效,其他没用提交适配文件的搜索中就无效了。2、JS跳转JS跳转对于某些行业来说有着重要的作用,尤其是对于用户转换率网站首页较高的网站,只需要在网站的头部加一段JS代码判定是否是移动端访问,然后所有的流量就会全部流向手机站的主页。JS跳转的优点是适用于所以的移动搜索,并不局限于百度和360,可以提高用户的转换率。缺点是难以实现每个页面的一一对应,而且容易被某些搜索引擎判定作弊,从而受到惩罚。3、META声明META声明的格式一般为,站长可以将这段代码加在PC站的头部,由META信息来指明该PC页对应的手机页的URL,以及该URL对应页面的格式。META声明的优点是代码简单易懂,操作方便。缺点是只能在百度移动搜索中生效,对于其他搜索引擎无效(另外,还可以使用百度转码,具体可查看马海祥博客《百度转码后的手机网站页面是否有利于SEO优化》的相关介绍)。4、302规则302规则指的是,当判定移动端访问网站时,302临时跳转到一个网址(手机站),例如可以在HTACCESS文件里加上一段判定手机的代码,做个302重定向。这样做的好处是,不需要再额外在网站的前端代码中加任何东西,也不需要向搜索引擎提交规则,可是据测试,有可能会导致PC站被降权。虽然302是暂时性的重定向,但过于频繁的302是很有可能给网站带来不利的影响的,具体的尺度需要站长自己去把握。以上4种适配方法是接触的最为常见的操作方法,通常PC站做了以上处理后,一段时间以后移动端搜索出来的结果,下面匹配的网址就变成了移动站网址,不过标题还是PC站标题。至于到底哪种方法更好,更倾向于第一种,毕竟百度移动搜索占据着网站的大部分流量,而且用户体验度也最好。网页重定向就是将用户请求的网页转向其它位置。即当用户访问某个网页A时,网页A自动定向到网页B,这样用户实际看到的就是网页B了。
网页重定向在网站开发中经常使用,如:
1) 公司的域名进行了变更,为了用户也能通过原有域名进行访问,就得使用重定向。常见的购物网站,好多都进行了域名变更,但原域名仍保留,输入原域名后,自动定向到新的域名。
2) 在用户登录页面A中,输入完用户名密码后,点击登录时,表单提交到验证网页B,在服务端进行验证通过后,会自动定向到用户信息网页C。
下面介绍几种网页重定向的几种常用方法。
通过javascript脚本进行重定向
1
将a.html提交到b.html,b.html重定向到c.html。
(a.html相当于用户登录网页,b.html相当于验证用户信息网页,c.html相当于重定向的网页)
这里演示的仅是重定向的功能,因此代码尽可能简单。
a.html内容如下:
<html>
<head>
<metahttp-equiv="Content-Type" content="text/htmlcharset=utf-8" />
</head>
<body>
<form action="b.html"method="post">
<input name = "submit"type="submit" value="提交">
</form>
</body>
</html>
预览图如下:
2
b.html内容如下:
<html>
<head>
<metahttp-equiv="Content-Type" content="text/htmlcharset=utf-8" />
<scripttype="text/javascript">
function load()
{
window.location ="c.html"
}
</script>
</head>
<body onload = "load()">
验证通过,现在进入用户信息页面。
</body>
</html>
3
c.html内容如下:
<html>
<head>
<metahttp-equiv="Content-Type" content="text/htmlcharset=utf-8" />
</head>
<body>
欢迎光临!
</body>
</html>
预览图如下:
4
重点在b.html,重定向的代码就在其中的javascript脚本load()函数中。在b网页加载完毕后,会调用此函数,此函数的重定向代码就一句:
window.location = "c.html"
怎么样?是不是很简单。
如果想定向前其它网页,如百度首页,可以这么写:
window.location=”http://www.baidu.com”
注意“http://”不能少。
END
通过php代码进行重定向
1
因为涉及到php代码的执行,因此需要先做一个网站,这里假定网站已做好。
a.html中的代码很简单,只需将上面的form中的action改为指定b.php而不是b.html即可。
b.php的代码如下:
<?phpheader("Location:c.html")?>
要在本地网站进行演示,可以将a.html、b.php、c.html拷贝到你的网站目录下,在浏览器地址栏中输入: localhost/a.html进行操作。
END
通过asp.net代码进行重定向
1
代码和php类似,因要先做一个支持asp.net运行的网站,将a.html中的action指定b.aspx,b.aspx中的代码如下:
<% Server.Transfer("c.html")%>
END
通过jsp代码进行重定向
代码和php类似,因要先做一个支持jsp运行的网站,重定向代码如下:
<jsp:forward page="c.html">
评论列表(0条)