pc 网站有了,怎么做手机适应的网站?

JavaScript07

pc 网站有了,怎么做手机适应的网站?,第1张

一、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:auto

3、相对大小的字体

字体也不能使用绝对大小(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:right

width:70%

}

.leftBar{

float:left

width: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:none

width: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站标题。

至于到底哪种方法更好,更倾向于第一种,毕竟百度移动搜索占据着网站的大部分流量,而且用户体验度也最好。

需要准备的材料分别有:电脑、浏览器、html编辑器。

1、首先,打开html编辑器,新建html文件,例如:index.html。

2、在index.html中的<head>标签中,输入meta代码:<meta name="viewport" content="width=device-width, initial-scale=1">。

3、浏览器运行index.html页面,此时PC端的网页在移动端上也能自动适配。

1 . 第一种:

第一个想法是需要使用一个 css 背景图,如果这张图够大,就能填充整个屏幕。当浏览器窗口大小没有图片大时,它将自动隐藏多余的部分。

<head> .... <script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript">$(document).ready(function() { $("img.source-image").hide()var $source = $("img.source-image").attr("src")$('#page-body').css({ 'backgroundImage': 'url(' + $source +')', 'backgroundRepeat': 'no-repeat', 'backgroundPosition': 'top center' })})</script></head><body id="page-body"><img class="source-image" src="images/image.jpg" alt="" /></body>

上面的这些代码能够自动隐藏超出浏览器窗口部分的图片(image.jpg)多余部分,不会使浏览器产生滚动条。

2 . 第二种:

第一次试验的效果并没有达到要求,并不是真的使得背景图片适应窗口大小,应该使用设置“宽度”和“高度”属性来控制图片的大小,如果我们能够得到浏览器窗口显示像素,就可以利用这个数字来控制图片大小,同时保持比例。

使用 jquery 和 dimensions plugin 可以获得这些参数。

<script type="text/javascript" src="/js/jquery.js"></script><script type="text/javascript" src="/js/jquery.dimensions.js"></script><script type="text/javascript">$(document).ready(function() { var $winwidth = $(window).width()$("img.source-image").attr({ width: $winwidth })$(window).bind("resize", function(){ var $winwidth = $(window).width()$("img.source-image").attr({ width: $winwidth })})})</script>

为了让这张图片更像一个背景图像,我们设置:

img.source-image {position: absolutetop: 0left: 0}

因为背景图片加上了定位代码,那要加在背景图片上任何东西都需要定位,如果您的背景图像是竖条状的(特别的高),而你的浏览窗口特别的宽,很容易造成背景图片高度超过您的浏览器窗口的高度,为了防止这种情况,需要设定对超出的部分进行隐藏:

body {overflow: hidden}

3 . 第三次方法(最好的):

Stu Nicholls version给出了最好的方法(看了下网易的首页也是这样做的),这处理方式不需要任何的 JavaScript 就能完美的达到目的。

#img.source-image {width: 100%position: absolutetop: 0left: 0}

在 css 里直接设定背景图片宽度的百分比,这是这个方法的效果。这个方法是最好的,而且不需要任何的 JavaScript 。