Safari是一个功能比较完整的浏览器。它支持全部按照W3C标准HTML,CSS,Javascript开发的网页。 固然,让网站正常访问只是咱们的初级目标。开发者应该致力于给用户提供更好的用户体验。好比支持不一样手持触屏设备显示,针对多屏幕或分屏时的响应式设计,支持触摸和手势事件,等等。css
safari浏览器下img标签src属性支持连接到mp4文件。其会预加载对应的资源,适用于小视频或动画gif。html
到目前为止,基于webkit引擎开发的全部浏览器包括Safari桌面端及ios系统移动端,都支持如下标准:ios
更多设计实践参考 Web Page Development: Best Practicescss3
保证文字在ios端可以更清晰的展现,而且支持双击缩放。web
showModalDialog在ios端Safari暂时不支持。canvas
使用-webkit-appearance:none可清除浏览器默认样式。api
textarea{ -webkit-appearance:none; // safari 默认样式清除 }
@media screen and (-webkit-min-device-pixel-ratio: 2){ font-size: 14px; }
更多优化建议参看 优化你的网页应用浏览器
视窗meta标签做用:安全
支持的meta属性app
<meta name="apple-mobile-web-app-capable" content="yes" >
<meta name="apple-mobile-web-app-status-bar-style" content="black">
// 禁用该功能 <meta name="format-detection" content="telephone=no">
<meta name="viewport" content="width=device-width, initial-scale= 1, user-scalable=no"
默认支持的常量:
支持的属性及其默认值:
设置user-scalable可阻止当输入框聚焦时页面滚动的行为。
-webkit-为前缀的css3属性属于W3C标准规范内
当用户双击屏幕时,页面最好可以动态调整文字大小,以提升文字可读性。
Safari浏览器中,给文字容器标签设置-webkit-text-size-adjust属性,实现动态调整文字大小。
该属性只在Safari浏览器下有效
-webkit-text-size-adjust默认属性通常为auto。惟一例外是iPad中,该属性默认值为none。
#sticky_container { top: 200px; right: 0; width: 300px; height: 400px; overflow: hidden; position: fixed;
position:fixed;保证固定元素不受界面滚动或缩放影响。
更多参考 Understanding Layout and Gestures in Safari on iOS and Lion from WWDC2011
Safari浏览器默认高亮显示被点击的连接或可点击元素。咱们能够经过-webkit-tap-hightlight-color属性改变或禁用该默认行为。
// -webkit-tap-hightlight-color -webkit-tap-hightlight-color: 0; // 禁用
可显示高度
页面在输入键盘展开或隐藏状态下,页面可展现内容高度,可经过下列公式大概计算:
设备高度-状态栏高度-导航栏高度-键盘高度。
为避免键盘展开时,覆盖正在输入的表单输入框。使用上面公式合理安排动态调整表单元素的高度位置。
使用-webkit前缀加属性实现Safari下的特殊显示样式。
{ width: 100px; height: 100px; -webkit-border-radius: 50px; background-color: purple; }
Safari下,input输入框可选值完整列表:列表 或参考w3c标准。
autocorrcet
autocapitalize