博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript HTML5 手机版手机版网站起码要实现一些基本的功能吧:
阅读量:6801 次
发布时间:2019-06-26

本文共 3321 字,大约阅读时间需要 11 分钟。

1.页面的适用性问题。对于移动终端,有不一样的分辨率与屏幕尺寸,如果还像电脑端的设计还限制网页的宽度为1003px或其他像素值,字体大小还用12px或14px,那么,不一样的终端的效果差别会很大。所以这里,最好让网页的宽度自适应屏幕,还好,w3c在设计html的时候为我们考虑了这一点,只需一句话,就可以搞定,就是加上

Javascript代码 
  1. <meta name="viewport" content="width=device-width"/>  

,对于字体的话,我们就用em或ex为单位就好 

2.版本制作问题。移动页面往往针对不同的手机设置不同的版本,一般有精简版,标准版,3G版,触屏版,智能手机版等等,这些除了在页面设计上有不同外,页面语言也会不同的。精简版采用wap 1.0 的wml脚本编写,这个通用性以前很强,很多国产手机都支持这个语言的,但这个语言是很精简的。标准版的一般可以采用wap 2.0技术,对应的脚本语言是xhtml mp(xhtml mobile profile),这个语言是xhtml的子集,这个并且支持大部分的css,基本上和电脑版的差不多,但一般不能用js,这是考虑到这些手机是不支持js的。对于智能手机版,由于现在的智能手机都支持js,这个版本的制作上就简单多了,不过,又由于大部分智能手机(基本上除去塞班手机,包括Android,ios,wp7等)都支持Html5,因此,智能手版可以采用html5来制作。 
3.版本控制问题。可能这部分是比较不好解决的,怎么智能判断手机的最佳版本并跳转,可以从这几个方面考虑。一方面,可以想办法得到手机的操作系统,比如,Android的,ios的,就可以跳转到html5版了,windows系统,毫无疑问电脑版,获得手机系统,可能通过得到手机型号,现在的方法是通过浏览器的UA(user agent),获得手机的一些信息,简单一点的,直接可以通过UA判断手机的制造产商。要想获得更多的信息,就得有一个数据库,因为不同手机型号会有不一样的UA信息,世界上的手机有很多,自己要想做一个这样的数据库还是很难的,不过,已经有人为我们做好了这样的数据库,或者更方便的,做好了一个识别手机适用最佳版本的函数库,这里我推荐用Wurfl。另一方面,可以通过页面的脚本来判断浏览器对js和html5的支持,代码如下 

Javascript代码 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">  
  3. <html xmlns="http://www.w3.org/1999/xhtml">  
  4. <head>  
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  6. <meta name="viewport" content="width=device-width"/>  
  7. <title>版本控制</title>  
  8. <script type="text/javascript">  
  9. window.onload = function(){  
  10.   //检测是否支持js  
  11.   try{
    //检测是否支持html5  
  12.     document.getElementById("c").getContext("2d");  
  13.     document.location = '支持html5版的链接';  
  14.   }catch(e){
    //否则跳到支持js版  
  15.     document.location = '支持js版';  
  16.   }  
  17. };  
  18. </script>  
  19. </head>  
  20.   
  21. <body>  
  22. <canvas id='c'></canvas>  
  23. 普通版  
  24. </body>  
  25. </html>  

如果你仅仅想开发一个版本,只是判断一下是不是移动客户端,这里引用一段discuz! x2的代码 

Php代码 
  1. <?php  
  2. function checkmobile() {  
  3.     global $_G;  
  4.     $mobile = array();  
  5.     static $mobilebrowser_list =array('iphone''android''phone''mobile''wap''netfront''java''opera mobi''opera mini',  
  6.                 'ucweb''windows ce''symbian''series''webos''sony''blackberry''dopod''nokia''samsung',  
  7.                 'palmsource''xda''pieplus''meizu''midp''cldc''motorola''foma''docomo''up.browser',  
  8.                 'up.link''blazer''helio''hosin''huawei''novarra''coolpad''webos''techfaith''palmsource',  
  9.                 'alcatel''amoi''ktouch''nexian''ericsson''philips''sagem''wellcom''bunjalloo''maui''smartphone',  
  10.                 'iemobile''spice''bird''zte-''longcos''pantech''gionee''portalmmm''jig browser''hiptop',  
  11.                 'benq''haier''^lct''320x320''240x320''176x220');  
  12.     $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);  
  13.     if(($v = dstrpos($useragent$mobilebrowser_list, true))) {  
  14.         $_G['mobile'] = $v;  
  15.         return true;  
  16.     }  
  17.     $brower = array('mozilla''chrome''safari''opera''m3gate''winwap''openwave''myop');  
  18.     if(dstrpos($useragent$brower)) return false;  
  19.   
  20.     $_G['mobile'] = 'unknown';  
  21.     if($_GET['mobile'] === 'yes') {  
  22.         return true;  
  23.     } else {  
  24.         return false;  
  25.     }  
  26. }  
  27.   
  28. function dstrpos($string, &$arr$returnvalue = false) {  
  29.     if(emptyempty($string)) return false;  
  30.     foreach((array)$arr as $v) {  
  31.         if(strpos($string$v) !== false) {  
  32.             $return = $returnvalue ? $v : true;  
  33.             return $return;  
  34.         }  
  35.     }  
  36.     return false;  
  37. }  
  38. var_dump(checkmobile());//如果是移动端返回true,否则false  

4.手机版本的大小问题。一般来说,对于精简版和普通版的手机网页,我们是做得越精简越好,能省的代码最好省去,毕竟现在手机流量对用户来说还是很宝贵的。比如元素命名,一般页面少的话,命名越短越好,css最好写在一行。css中,有些元素是继承父类的样式的,不用重复定义,善用默认值。 
5.浏览器缓存。如果再更新不快的情况下,最好开启浏览器缓存

转载地址:http://vfywl.baihongyu.com/

你可能感兴趣的文章
【人生苦短,我用Python】Python免费精品课连载(1)——Python入门
查看>>
用物联网新技术保市民平安
查看>>
IBM向认知转型 选择混合云路径
查看>>
智能安防市场的痛点到底在哪里?2016欧美消费者调查问卷解读!
查看>>
对号入座,企业物联网化的正确路径是什么?
查看>>
微软宣布免费开源的NuGet包管理器下载量已破10亿
查看>>
微软Win10免费升级通知开启“自毁”模式
查看>>
英国《数字经济法案》
查看>>
必须了解的五个光伏发电财务和税收政策
查看>>
思默特获评“用户满意服务奖”荣誉
查看>>
CYQ.DBImport 数据库反向工程及批量导数据库工具 V1.0 发布
查看>>
AT&T开发出400 GbE试验的SDN控制器
查看>>
DBA生存警示:主备环境误操作案例及防范建议
查看>>
聊天机器人并不适合每一项业务和每个人
查看>>
拼写错误影响黑客盗窃数亿美元
查看>>
真正的持续集成:分布式代码仓库和依赖
查看>>
KDD论文解读 | 想要双11抢单快?靠这个技术提速9MS
查看>>
Asp.net与Flex交互测试记录
查看>>
两招抵御APT攻击
查看>>
教师节有“假期” 网络电话传递温情祝福
查看>>