首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

iPhone WebApp 开发技术要义总结(一)

2013-07-20 
iPhone WebApp 开发技术要点总结(一)?maximum-scale1.0 user-scalable0/?在设置了 initial-scale1

iPhone WebApp 开发技术要点总结(一)

?maximum-scale=1.0; user-scalable=0;"/>?

在设置了 initial-scale=1 之后 ,我们终于可以以 1:1 的比例进行页面设计了。?

???? 关于 viewport ,还有一个很重要的概念是 :iphone 的 safari 浏览器完全没有滚动条 ,而且不

?是简单的???? “隐藏滚动条” ,是根本没有这个功能。iphone 的 safari 浏览器实际上从一开始就完整显

?示了这个网页 ,然后用 viewport 查看其中的一部分。当你用手指拖动时 ,其实拖的不是页面 ,而是

?viewport。?

???? 浏览器行为的改变不止是滚动条 ,交互事件也跟普通桌面不一样。这在后面会进行详细说明。?

??????

???? 2、必须注意到 ,为了让你的页面更好地受到 Safari 的支持。必须 :?

???? u 声明正确的 doctype ;?

???? u 避免使用 frameset ;?

???? u 每一个独立的资源文件 ,HTML、CSS、JavaScript、以及非流媒体的其他多媒体文件 ,

????????? 限制在 10m 之内 ;?

???? u 顶级入口的 JavaScript 执行时间限制为 5 秒 ,超时将自动终止 ;?

???? u JavaScript 分配内存上限为 10m ;?

???? u? 同一时间最多在 Safari 内打开 8 个子窗口 (同时浏览的页面 )。?

???? Safari 本身还对图片有如下的限制 :?

???? u GIF (包括 GIF 动画 )、PNG 与 TIFF 解压后的体积小于 2m。意思是 ,原图的长度乘以

????????? 宽度再乘以每一个像素的位数 ,得出来的大小要小于 2m ;?

???? u JPEG 解压后最大的体积是 32m。解压体积大于 2m 的 JPG 会被进行二次抽样 ,最终显

????????? 示给用户的是二次抽样后的结果。显示时实际上是降低了精度的 ,以提高程序的执行效率。?

???? 可以看出 iPhone 对 HTML 的支持与桌面端的 Safari 是类似的 ,只是加入了更多扩展功能而已。

?使用? HTML? 作为框架 ,适当嵌入 javascript? ,灵活运用? CSS ,即可实现你编写? iPhone? 应用软件

?的快乐梦想。?

??????

???? 3、HTML? 的基本结构。很多人对? HTML? 已经很熟了。在此仅做一简单复习。?

???? <html>?

???? <head>?

??????? <meta ……/ >?

??????? <link ……/ >?

??????? <title>……</title>?

??????? <script type="text/javascript" src="xxxx.js"></script>?

??????? <style type="text/css">……</style>?

???? </head>?

???? <script Language="JavaScript">……</script>?

???? <body>……</body>?

???? </html>?

??????

???? 下面 ,侧重? iPhone Safari? 的特性 ,详细介绍其各部分的内容。?

?

?

框架


???? 基于? WebKit? 的 iPhone Safari ,有一些与电脑上的 Safari ,特别是与? IE(Internet Explorer)

?不同之处 ,以下的说明中会特别注明。?

??? 1、头<head>部分 :?

??? ①<meta>?

??? 定义网页语言 :(如果使用了扩展字符 ,请选用 gb18030 )?

??? <meta http-equiv="Content-Type " content="text/html; charset=gb2312 "/ >?

??? 定义用户界面 ,宽度为设备宽度 (等同于 320 像素 ),并不可缩放 )?

??? <meta name = "viewport " content = "width = device-width, user -scalable = no "/ >?

??? 定义显示的数字串 ,不被自动识别为电话号码。否则会自动转换为拨号超链接。?

??? <meta name="format-detection" content="telephone=no" />?

??? 定义开发者?

??? <meta name="Author" contect="LSi "/ >?

??? ②<link>?

??? web app 可以像原生应用一样 ,在 home 界面里上添加一个快捷方式图标?

??? <link rel="apple -touch-icon" href="icon.png" />?

??? 这是针对单个页面的 ,如果你把图片命名为???????????????? “apple-touch-icon.png” ,放在网站的某个目录

里面 ,该目录下所有页面都会获得添加图标的功能……?

??? 图标的要求是尺寸 57×57 ,png 格式 ,不用画蛇添足的去做圆角渐变或玻璃反光效果 ,iphone

系统会把图片自动裁剪和渲染成统一的风格……?

??? ③<title>?

??? 定义可被搜索的网页关键词?

??? <title>择吉老黄历</title>?

??? ④<script>?

??? 定义外部 javascript? 文件?

??? <script type="text/javascript" src="xxxx.js "></script>?

??? ⑤<style>?

??? 定义所用的 CSS (层叠样式表 Cascading Style Sheet )?

??? <style type="text/css">……</style>?

??? iPhone Safari 支持的 CSS3 的很多新特性。灵活运用? CSS ,不仅可以简化程序 ,而且可以轻松

实现很多特殊的效果。这一点 ,会在后面详细说明。?

?????

??? 2、JavaScript 部分?

???? <script Language="JavaScript ">……</script>?

??? 这部分是程序实现各种功能的关键。一般包括 :?

???? n? 变量定义??
?n? 自定义函数?

???????

????? 简单示例 :?

????? <script Language="JavaScript ">?

??????????? var MsgArr=new Array()?

??????????? var pPot =pMin=0; pMax =9?

??????????? var wAddr= "http://bbs.weiphone.com/?u=61542?"?

???????

????? function pSetup(s)?

????? {?

??????????? return (s<pMax) ? true : false?

????? }?

????? </script>?

??????

???? 当外部 js? 文件与内嵌 javascript? 段存在变量或函数冲突时 ,按加载顺序 ,以最后的定义为准。?

???? Javascript? 段亦可放在? <body> 段之后 ,可实现先加载? <body> ,? 后加载? <javscript>。但

必须注意 ,由于是顺序加载 ,<body> 段不能引用后面的变量或函数 ,但可以向后调用。?

??????

???? 3、<body>部分?

???? 这是程序界面的主要部分。程序的显示、交互一般都放到这个段。?

???? 简单示例 :?

<body style="margin: 0; font -size: 12pt; font -family: Trebuchet MS; color: #FFFFFF"?

??????????? ontouchmove="event.preventDefault()" onload="tImg.style.visibility='visible' " >?

????? <img id="tImg" src="TestFile.png" onerror="pError()" />?

?????? <table id="layerT" style=" position? absolute; width: 320px; height: 480px ">?

??????????? <tr><th id="TitleBar" colspan="2" height="48px">???????????????? </th></tr>?

??????????? <script Language="JavaScript">?

????????????????? for (i=0; i<=pMax; i++)?

????????????????? {?

??????????????????????? document.write("<tr ontouchend ='DispImg(" + i +")' style='border-top:?

?1px solid #CCC'><td id='M" + i + "'></td><td width='12' > ></td></tr>");?

????????????????? }?

??????????? </script>?

??????????? <tr><td id="ToolBar" colspan="2" height="42px">????????????????? </td></tr>?

?????? </table>?

?????? <div id="layerH" style="position: absolute; width: 320px; height: 480px; left: 0px; top:?

?0px; background -color: RGBA(0,0,0,0.3); z-index: 1; visibility:hidden">?

??????????? <div id="layerM" style=" -webkit-border-radius:12px; border:2px solid #FFF;?

?? -webkit-box-shadow: 0px 2px 4px #888;?

?????????????? position: absolute; left: 24px; top: 106px;?

?????????????? width: 256px; height: 268px; padding -left: 8px; padding-right: 8px;?

?????????????? color: #FFFFFF; text-shadow: 1px 1px 1px #000; text -align: center;?

?????????????? background-color: RGBA(32,48,96,0.9);?

?????????????? background-image:url('BG-Msg.png'); background-repeat:no-repeat;?

?????????????? z-index: 1; visibility: hidden; ">?

????????? <p><span style="font -size: 16pt; font -weight: bold">使用说明</span></p>?

????????? <hr noshade size="1">?

????????? <div id="HelpText" style="height: 120px">说明文字</div>?

????????? <hr noshade size="1">?

????????? <form name="formV" method="POST">?

?????????????? <input type="button" value="确认" name="B1"?

??????????????????? onclick=" layerH.style.visibility='hidden'" / >?

????????? </form>?

????????? </div>?

????? </div>?

</body>?

?

??? 简要说明 :?

??? ontouchmove="event.preventDefault()"?????????? //锁定 viewport ,任何屏幕操作不移动用户界

面 (弹出键盘除外 )。?

??? onload="tImg.style.visibility='visible'"? // <body>加载完成后 ,显示该图片。?

??? onerror="pError()"?? //图片加载错误时 ,执行错误处理过程。(特别说明 :在? IE? 中 ,只有图

片文件不存在 ,才返回错误 ;而在? iPhone Safari? 中 ,图片文件不存在 ,或格式不正确 ,均返回错

误。因此这种方式 ,只能用来判断图片文件是否存在。)?

??? position: absolute; width: 320px; height: 480px???? //设定该容器绝对定位位置 ,正好为完全

的 viewport? 尺寸。(特别说明 :除非参数值为 0 ,建议数值参数均带上单位。)?

??? id="TitleBar"??? //定义单元标志 ,其后可以使用 :TitleBar .innerText = "标题文字"? 或?

TitleBar .innerHTML = "<b>标题文字</b>"? 来重置该单元内容。不同的是 innerText 是纯文本

内容 ,而 innerHTML 可以使用规范的 html 格式。?

??? width: 256px; height: 268px; padding -left: 8px; padding-right: 8px;??? //由于设定了容器

的? padding 值 ,所以 ,该容器的宽度实际是 :256 + 8 + 8 = 272 px。?

??? z-index: 1 //设定该层的顺序。层号越大越靠上 ;若有相同层号 ,按程序中定义顺序 ,后边的靠

上 ;设定为? -1 会不显示 ,但为显示方便 ,避免层设定混乱 ,隐藏某层一般使用 :visibility: hidden。?

?


?

属性??

1、字体?

??? ①font-family?? 字体名称 (iPhone? 自带字体参见右表 )?

??? ②font-size:? 字号参数 (一般标题使用? 18 pt ,正文使用? 12pt ,按钮使用 14pt,工具条使用?

12px )?

??? ③font-style:? 斜体字的名称 (italic )?

??? ④font-weight:? 字体粗细 (取值范围从数字 100~900 ,浏览器默认的字体粗细为 400 ,默认

加粗? bold 为 700。另外可以通过参数 lighter 和 bolder 使得字体在原有基础上显得更细或更粗些。)?

??? ⑤text-transform :文字大小写?

??? uppercase :所有文字大写显示?

??? lowercase :所有文字小写显示?

??? capitalize :每个单词的头字母大写显示?

??? none :不继承母体的文字变形参数。?

??? ⑥text-decoration :文字修饰?

??? underline :为文字加下划线?

??? overline :为文字加上划线?

??? line-through :为文字加删除线?

??? blink :使文字闪烁?

??? none :不显示上述任何效果。?

??? ⑦text-align? :文本水平对齐?

??? left :左对齐?

??? right :右对齐?

??? center :居中对齐?

?? justify? :相对左右对齐?

??? 但需要注意的是 ,text-alight 是块级属性 ,只能用于<p>、<blockquqte>、<ul>、<h1>~<h6>

等标识符里。?

??? ⑧vertical-align? :文本垂直对齐?

??? top :顶对齐?

??? bottom :底对齐?

??? text-top :相对文本顶对齐?

??? text-bottom :相对文本底对齐?

??? baseline :基准线对齐?

??? middle :中心对齐?

??? sub :以下标的形式显示?

??? super :以上标的形式显示 )?

??? ⑨text-shadow: 1px 1px 1px #000 :文字阴影。(参数分别为 :水平 X 方向偏移量 ;垂直 Y

方向偏移量 ;高斯模糊半径值 ;阴影颜色值 )?

?????

??? 2、颜色?

??? ①color :颜色属性 (颜色参数取值范围 :? 以 RGB 值表示 ;以 16 进制 (hex )的色彩值表示 ;

以默认颜色的英文名称表示 ,注意大小写 !)?

??? 例如 :?

??? color? #0080FF????????????????? (可以使用#abc 缩写来表示#aabbcc)?

??? color? RGBA(00,33,66,0.5)?????? (Red:0 Green:33 Blue:66 opacity:50%)?

??? color? red????????????????????? (颜色代码保留字 ,参见下表)?

??? Black="#000000"????? Green="#008000"????? Gray="#808080"????? White="#FFFFFF"??
?□??????????????????? □???????????????????? □?????????????????? □?

??? Silver="#C0C0C0"???? Lime="#00FF00"?????? Yellow="#FFFF00"??? Olive="#808000"??
?□??????????????????? □???????????????????? □?????????????????? □??
?□ Fuchsia="#FF00FF"? □ Maroon="#800000" □ Red="#FF0000"??????? □ Purple="#800080"?

??? Aqua="#00FFFF??????? Teal="#008080"?????? Blue="#0000FF"????? Navy="#000080"??
?□??????????????????? □???????????????????? □?????????????????? □?

?????

??? ②background-color :背景颜色?

??? 参数取值和颜色属性一样。?

?????

??? 3、背景?

??? ①background-image: url(URL)?

??? URL 就是背景图片的存放路径。如果用?????????????? “none”来代替背景图片的存放路径 ,将什么也不显示?

??? ②background-repeat :背景图片重复 (默认的是水平、垂直两个方向上平铺 )?

??? no-repeat :不重复平铺背景图片?

??? repeat-x :只在水平方向上平铺?

??? repeat-y :只在垂直方向上平铺?

??? ③background-position :背景定位 (用于控制背景图片在网页中显示的位置。其参数为带长

度单位的数字参数 ,其取值范围 :?

??? top :相对前景对象顶对齐?

??? bottom :相对前景对象底对齐?

??? left :相对前景对象左对齐?

??? right :相对前景对象右对齐?

??? center :相对前景对象中心对齐?

??? 比例关系?

??? 参数中的 center 如果用于另外一个参数的前面 ,表示水平居中 ;如果用于另外一个参数的后面 ,

表示垂直居中。 )?

?????

??? 4、容器??
? ①margin 边框空白。位于 BOX 模型的最外层 ,包括四项属性。格式分别如下 :?

??? margin-top :顶部空白距离?

??? margin-right :右边空白距离?

??? margin-bottom :底部空白距离?

??? margin-left :左边空白距离?

??? 如果使用上述属性的简化方式 margin ,可以在其后连续加上四个带长度单位的数字 ,来分别表

示 margin-top、margin-right、margin-bottom、margin-left ,每个数字中间要用空格分隔。?

??? ②border 对象边框。位于边框空白和对象空隙之间 ,包括了七项属性。格式分别如下 :?

??? border-top :顶边框宽度?

??? border-right :右边框宽度?

??? border-bottom :底边框宽度?

??? border-left :左边框宽度?

??? border-width :所有边框宽度?

??? border-color :边框颜色?

??? border-style :边框样式参数?

??? 其中 border-width 可以一次性设置所有的边框宽度 ,border-color 同时设置四面边框的颜色

时 ,可以连续写上四种颜色 ,并用空格分隔。上述连续设置的边框都是按 border-top、border-right、

border-bottom、border-left 的顺序。?

??? Border-style 相对别的属性而言稍稍复杂些 ,因为它还包括了多个边框样式的参数 :?

??? none :无边框。?

??? dotted :边框为点线。?

??? dashed :边框为长短线。?

??? solid :边框为实线。?

??? double :边框为双线。?

??? groove :根据 color 属性显示不同效果的 3D 边框?

??? ridge :根据 color 属性显示不同效果的 3D 边框?

??? inset :根据 color 属性显示不同效果的 3D 边框?

??? outset :根据 color 属性显示不同效果的 3D 边框?

??? ③padding 对象间隙。位于对象边框和对象之间 ,包括了四项属性。基本格式如下 :?

??? padding-top :顶部间隙?

??? padding-right :右边间隙?

??? padding-bottom :底部间隙?

??? padding-left :左边间隙?

??? 和 margin 类似 ,padding 也可以一次性设置所有的对象间隙。?

??? ④background: url(..), url(..), url(..), url(..)? 多重背景。

?

由www.J2meGame.com精心收集。

热点排行