【响应式网页设计】自适应站点如何做到对百度友好

 

  自适应也叫响应式,指可以自动识别屏幕宽度、并做出相应调整的网页设计。目前被越来越多的站点所使用。同时百度也公开宣称鼓励大家用HTML5技术打造在PC站和移动站都能让用户有良好体验的站点。那么自适应站点在代码上需要做出哪些调整可以对百度更加友好呢?我们来看看皮皮鲁网SEO负责人蒋飞的分享。

  一、什么样的网站适合做自适应

  自适应网页设计(Responsive Web Design)是指可以自动识别终端设备屏幕的大小从而做出相应调整的网页设计方法。这种网页设计方法完美解决了如何在不同大小的网络设备上呈现同样的网页效果。大家公认自适应至少有4个好处:提升用户体验;PC端和移动端SEO保持一致;避免重复内容和出错内容;链接统一。

  而自适应比较明显的缺陷是,开发成本比较高,尤其是要构建包含额外编程的复杂的自适应网站,所需的时间会比较长。如果网站需求较简单,有许多开源模板可供选择。

  对于已经比较成熟PC网站来说,如果要实现全站的自适应,有可能需要推掉原来所有的代码进行重构,时间和技术成本都比较大,而且如果一个网站有多个portal(入口),会大大增加架构设计的复杂度,所以现在有很多网站只在移动端实现了响应式布局设计。

  二、自适应网页代码上需要做出哪些调整

  1、 阻止移动浏览器自动调整页面大小

  iOS和Android浏览器都基于webkit核心,这两种浏览器以及其他的很多浏览器都支持viewport meta元素覆盖默认的画布缩放设置,只需在HTML的<head>标签中插入一个<meta>标签,<meta>标签中可以设置具体的宽度(如像素值)或者缩放比例2.0(设备实际尺寸的两倍),下面是将一个页面放大到设备实际尺寸两倍显示的meta标签示例:

  <meta name=”viewport” content=”initial-scale=2.0,width=device-width”/>

  2、将网页修改为百分比布局

  当某个浏览窗口处于媒体查询固定的范围之外,网页就需要水平滚动才能完整浏览,而通过百分比布局可以页面元素根据窗口大小在一个又一个媒体查询之间灵活修正样式,具体来讲,就是css代码不会指定具体像素宽度:width:xxx px;而是会指定一个百分比宽度:width:xx%;或者直接就是width:auto;这里大家可以根据一个简易的公式将固定像素宽度转换成对应的百分比宽度:目标元素宽度 ÷ 上下文元素宽度 = 百分比宽度

  例如:

  <div id =”wraper”>

  <divid = “header”></div>

  </div>

  #wrapper {

  margin-right: auto;

  margin-left: auto;

  width: 960px;

  }

  #header {

  margin-right: 10px;

  margin-left:10px;

  width: 940px;

  }

  转换为百分比的header区块的css为:

  #header {

  margin-right: 10px;

  margin-left: 10px;

  width: 97.916667% /* 940 ÷ 960 */

  }

  3、用em替换px

  同样,目标元素宽度 ÷ 上下文元素宽度 = 百分比宽度这个公式也适用于将文字的像素单位转换为相对单位,值得注意的是,现代浏览器的默认文字都是16像素,因此一开始给body标签应用下列任何一条规则所产生的效果都一样:

  font-size: 100%;

  font-size:16px;

  font-size: 1em;

  例如某网站网站标题相应的样式:

  #logo {

  display: block;

  padding-top: 75px;

  color: #0d0c0c;

  font-family: Arial;

  font-size: 48px;

  }

  修改后的样式如下:

  #logo{

  display: block;

  padding-top: 75px;

  color: #0d0c0c;

  font-family:Arial;

  font-size:3em /* 48 ÷ 16 */

  }

  4、流动布局(fluid grid)的使用

  “流动布局”指的是各个区块的位置都浮动,不是固定不变的。

  .main {float: right;width: 70%;}

  .leftBar {float: left;width: 25%;}

  这么做的好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向溢出,避免了水平滚动条的出现,大大提升了用户的阅读体验。另外,绝对定位(position:absolute)的使用,也要非常小心。

  5、Media Query技术的使用

  在自适应设计的技术中,css3支持css2.1定义的媒体类型,同时添加了很多涉及媒体类型的功能属性,包括max-width(最大宽度),device-width(设备宽度,orientation(屏幕定向:横屏或竖屏),因此可以通过Media Query加载相应的CSS文件. 例如,下面代码定义了如果页面通过屏幕呈现,并且屏幕宽度不超过480px,则加载shetland.css

  <link rel="stylesheet" type="text/css" media="screen and (max-device-width: 480px)" href="shetland.css" />

  同样可以创建多个样式表,以适应不同设备或者不同分辨率的宽度范围,当然更有效的做法是将多个Media Query整合在一个样式表文件中:

[email protected] only screen and (min-devece-width: 320px) and (max-device-width: 480px) {

  /* Styles */

  }

[email protected] screen and (min-width: 600px) {

  .hereIsMyClass {

  width: 30%;

  float: right;

  }

  上面的代码中定义的样式类只有在浏览器屏幕宽度超过600px时才会有效。