前面有一篇文章介绍了HTML5的一些新特性以及技巧, 现再来总结一些更多的针对webkit的HTML, CSS和Javascript方面的特性.
HTML, 从HTML文档的开始到结束排列:
XML/HTML Code复制内容到剪贴板- <metaname=”viewport”content=”width=device-width,initial-scale=1.0″/>
- <!--让内容的宽度自适应为设备的宽度,在做MobileWeb时必须加的一条-->
- <metaname=”format-detection”content=”telephone=no”]]>
- <!--禁用手机号码链接(foriPhone)-->
- <linkrel=”apple-touch-icon”href=”icon.png”/>
- <!--设置你网页的图标,尺寸为57X57px-->
- <!–iOS2.0+:telliOSnottoapplyanyglareeffectstotheicon–>
- <linkrel=”apple-touch-icon-precomposed”href=”icon.png”/>
- <!–iOS4.2+iconsfordifferentresolutions–>
- <linkrel=”apple-touch-icon”sizes=”72×72″href=”touch-icon-ipad.png”/>
- <linkrel=”apple-touch-icon”sizes=”114×114″href=”touch-icon-iphone4.png”/>
- <linkrel=”apple-touch-startup-image”href=”startup.png”>
- <!--全屏启动时候的启动画面图像,尺寸320x460px-->
- <metaname=”apple-mobile-web-app-capable”content=”yes”/>
- <!--是否允许全屏显示,只有在桌面启动时可用-->
- <metaname=”apple-mobile-web-app-status-bar-style”content=”black”/>
- <!--控制全屏时顶部状态栏的外观,默认白色-->
- <inputautocorrect=”off”autocomplete=”off”autocapitalize=”off”>
- <!--取消自动完成,自动大写单词字母(适用于Mobile上)-->
- <inputtype=”text”x-webkit-speech/>
- <!--语音输入-->
- <inputtype=”file”accept=“image
- -webkit-user-select:none;
- -webkit-touch-callout:none;
- :-webkit-full-screencanvas{}
- divp:matches(em,b,strong){}
- @mediaonlyscreenand(max-width:480px){}
- @media(-webkit-min-device-pixel-ratio:2),(min-resolution:300dpi){}
- header{background-image:url(header-highres.png);}
- }
- @media(-webkit-max-device-pixel-ratio:1.5),(max-resolution:299dpi){}
- header{background-image:url(header-lowres.png);}
- }
- background-repeat:space;background-repeat:round;
- width:calc(100%-40px);
- text-decoration:#FF8800wavyine-through;
- text-rendering:optimizeLegibility;
- font-variant-ligatures:common-ligatures;
- transform:rotate(90);
- transform-origin:centercenter;transform-origin
- -webkit-appearance:none;-webkit-appearance
美化表单校验时的提示样式
CSS Code复制内容到剪贴板- -webkit-validation-bubble{}
- -webkit-validation-bubble-message{}
- -webkit-validation-bubble-arrow{}
- -webkit-validation-bubble-arrow-clipper{}
当提示出现时类似于下面的结构
XML/HTML Code复制内容到剪贴板- <div-webkit-validation-bubble>
- <div-webkit-validation-bubble-arrow></div>
- <div-webkit-validation-bubble-arrow-clipper></div>
- <div-webkit-validation-bubble-message>ErrorMessage</div>
- </div>
自定义webkit浏览器的滚动条, 见Google Reader等在Chrome/Safari下的效果, 下面是一个实例, 这个滚动条的样式代码如下
CSS Code复制内容到剪贴板- CustomizedWebKitScrollbar
- ::-webkit-scrollbar{
- width:12px;
- }
- ::-webkit-scrollbar-track{
- -webkit-box-shadow:inset006pxrgba(0,0,0,0.3);
- -webkit-border-radius:10px;
- border-radius:10px;
- }
- ::-webkit-scrollbar-thumb{
- -webkit-border-radius:10px;
- border-radius:10px;
- background:rgba(255,0,0,0.8);
- -webkit-box-shadow:inset006pxrgba(0,0,0,0.5);
- }
- ::-webkit-scrollbar-thumb:window-inactive{
- background:rgba(255,0,0,0.4);
- }
- -webkit-background-composite:plus-darker;-webkit-background-composite
- -webkit-text-stroke:1pxrgba(0,0,0,0.5);-webkit-text-stroke
- -webkit-mask-image:url(/path/to/mask.png);
- -webkit-box-reflect:below5px;
- :local-link{font-weight:normal;}
Javascript:
window.scrollTo(0,0); 隐藏地址栏
window.matchMedia(); 匹配媒体
navigator.connection; 决定手机是否运行在WiFi/3G等网络
window.devicePixelRatio; 决定屏幕分辨率(iPhone 4值为2, 而Nexus One值为1.5)
window.navigator.onLine; 取得网络连接状态
window.navigator.standalone; 决定iPhone是否处于全屏状态
touch事件 (iOS, Android 2.2+): touchstart, touchmove, touchend, touchcancel
gesture事件 (Apple only, iOS 2+): gesturestart, gesturechange, gesturend give access to predefined gestures (rotation, scale, position)
Javascript Code复制内容到剪贴板- window.addEventListener("orientationchange",function(e){
- //window.orientation(0isportrait,90and-90arelandscape)
- },false);
- window.addEventListener("deviceorientation",function(e){
- //e.alpha
- //e.beta
- //e.gamma
- },false);
- window.addEventListener("devicemotion",function(e){
- //e.accelerationIncludingGravity.x
- //e.accelerationIncludingGravity.y
- //e.accelerationIncludingGravity.z
- },false);
requestAnimationframe() 新的动画函数
element.webkitRequestFullScreen() 调用全屏函数