月光博客 » 网站建设 » 自适应网页设计的方法

自适应网页设计的方法

  昨天中午Google进行了一次在线讲座,讲述自适应网页设计的概念和方法,维护同一个网页代码,即可使网站在多种浏览设备(从桌面电脑显示器到智能手机或其他移动产品设备)上具有更好的阅读体验,这里我将该讲座内容简要的整理一下。

  1、在HTML头部增加viewport标签。

  在网站HTML文件的开头,增加viewport meta标签告诉浏览器视口宽度等于设备屏幕宽度,且不进行初始缩放。代码如下:

  <meta name="viewport" content="width=device-width, initial-scale=1" />

  这段代码支持ChromeFirefox、IE9以上的浏览器,但不支持IE8以及低于IE8的浏览器。

  2、在CSS文件尾部增加针对不同屏幕分辨率的规则。

  例如使用如下的代码,可以让屏幕宽度低于480像素的设备(如iPhone等),网页侧栏隐藏中部内容栏宽度自动调节。以下代码针对Z-Blog,WordPress相关标签名称只需修改一下即可。

@media screen and (max-device-width: 480px) {
  #divMain{
  float: none;
  width:auto;
  }
  #divSidebar {
  display:none;
  }
}

  3、布局宽度使用相对宽度。

  网页总体框架可以使用绝对宽度,但往下的内容框架、侧栏等最好使用相对宽度,这样针对不同分辨率进行修改就方便。当然也可以不用相对宽度,那就需要在 @media screen and (max-device-width: 480px) 里面增加各个div的针对小屏幕的宽度,实际上更麻烦。

  4、页面使用相对字体(非必要)

  在HTML页面上不要使用绝对字体(px),而要使用相对字体(em),对于大多数浏览器来说,通常用 em = px/16 换算,例如16px就等于1em。

  5、图片自适应(非必要)

  img标签的话,只需要设置 max-width: 100%;或width:100%; 语句为:img { max-width: 98%; }

  css加载的background-image如何自适应大小呢,其实CSS3中是可以实现的,添加如下语句:background-size:100% 100%;

  根据上面讲述的几点内容,我针对我博客的CSS进行了一些修改,发现可以从iPhone手机浏览到体验更佳的页面,但有一个问题没有解决,就是顶部导航栏navbar显示有问题,换行后被下面的文章盖住了,不知道怎样能更好地解决这个问题(更新:经过网友提示,在导航栏divNavbar的样式里,加入  white-space:nowrap; overflow:hidden;  即可解决这个问题)。

  下图是使用iPhone访问的,经过修改CSS为自适应网页后的月光博客首页页面,看起来比原始的未优化页面好多了吧。

月光博客

  总之,根据上面四步进行修改的话,可以很简单地将一个网站修改为适合多种设备浏览的页面,这对于通过手机访问网站的用户来说,的确是一件好事。

  最后,分享一下Google关于自适应网页设计的讲座的视频地址,在线观看请点这里

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
    小李按摩博客   说道:
    这博客知识很全面,我会经常来的!
    支持(16反对(4回复
  1. 2
    ww   说道:
    顶一个,顶一个,顶一个,顶一个
    ww 于 2015-1-28 16:30:22 回复
    顶一个,顶一个,顶一个
    支持(7反对(3回复
  1. 3
    jeckf   说道:
    好东西,辛苦楼主分享。
    支持(11反对(8回复
  1. 4
    大豆异黄酮   说道:
    这个很有用!平时看手机网页的时候就是很难看的那种。现在可以调调
    支持(8反对(5回复
  1. 5
    yanwushu   说道:
    可否将将在线讲座的地址贴出来呀
    williamlong 于 2013-12-9 9:14:57 回复
    地址: t dot cn/8kqLJin
    支持(8反对(7回复
  1. 6
    国风   说道:
    dede的网站也可以吗
    支持(10反对(10回复
  1. 7
      说道:
    为什么我在网站里加了这段代码后。在苹果6和IPAD上面看网站是好的但是在苹果4和一些手机上面下面的内容还是有点空白的。。。求大神教我 QQ是494863945.
    支持(2反对(2回复
  1. 8
    LanaoHK   说道:
    谷歌并给予响应网站的优先事项。尼斯博客阅读
    支持(0反对(0回复
  1. 9
    文字纠错者   说道:
    根据上面讲述的几点内容,我针对我博客的CSS进行了一些修改,发现可以从iPhone手机浏览到体验更加的页面。

    体验更加---体验更佳
    支持(8反对(9回复
  1. 10
    大鹏小嘚吧   说道:
    这个太有用了,这两天正在制定前端规范呢。
    支持(5反对(6回复
  1. 11
    亚瑟王152   说道:
    先马克,明天再看
    支持(8反对(9回复
  1. 12
    佳友博客   说道:
    我用wp。。PC一个主题。。移动一个主题。。

    加一个插件自动判断搞定的。。。
    支持(11反对(12回复
  1. 13
    不理解   说道:
    em = px/16 ,例如16px就等于1em
    支持(16反对(18回复
  1. 14
    叫我小T   说道:
    呃,关于字体单位em的说法不太准确,你也说了这是相对字体,如果它总是固定等于16px,那怎么可能还叫相对字体?
    这个em是一个相对的单位,1em=一个字的大小,比如首行缩进两个字符就是用“text-indent:2em;”这样的写法。之所以经常说1em=16px,是因为绝大多数浏览器默认情况下1em=16px,而如果你自行设置了样式改变了字体大小,相对字体大小的单位em也会随之变化。
    而且em能够继承,也就是说父元素设置了font-size:16px,子元素设置font-size:0.9em,那么子元素字体大小就是16*0.9=14px;然后子元素的子元素再设置个font-size:0.9em,那子元素的子元素的字体大小就是14*0.9px。
    williamlong 于 2013-12-8 23:54:49 回复
    是的,我这里描述的不太准确,讲师也没讲清楚。
    支持(9反对(11回复
  1. 15
    达人家园   说道:
    很有用,多谢月光分享。
    支持(10反对(14回复
  1. 16
    讹钱钱啊   说道:
    1em不是12像素吗,傻帽
    阿斯顿大王我 于 2017-2-3 21:03:20 回复
    几倍与默认大小,傻,你重新定义下默认大小就不是16px了
    支持(3反对(7回复
  1. 17
    shenger   说道:
    实际上对导航的处理方法是将换行后的隐藏了,其实这一块最好的办法是再做一次媒体查询然后针对iPhone这样的小屏幕,把正文内容距离导航的距离拉大应该能解决的
    支持(8反对(13回复
  1. 18
    CYs   说道:
    这个有用,我先收藏了~~
    支持(11反对(16回复
  1. 19
    江米小枣tonylua   说道:
    基本是不做真正有价值网页不考虑带宽的的人拿来做概念性演讲的
    支持(5反对(11回复
  1. 20
    may   说道:
    只能适应移动端,web端不可以么?做了一个例子,web不可以。
    代码如下:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>css</title>
    <meta name="keywords" content="">
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1" />


    <style>

    div{
    border:1px solid black;
    background-color:pink;
    float:left;
    }
    .test{
    font-size:2em;
    width:800px;
    height:20%;
    }
    @media screen and (max-device-width: 480px) {
    .test{
    float: none;
    width:auto;
    }
    }
    </style>
    <script>


    </script>
    </head>

    <body>
    <div class="test">
    你好吗。hello word
    </div>
    </body>
    </html>

    支持(7反对(14回复

发表留言