layout tltle tags
post
ios7下移动web开发的几个坑
webapp

1.Retina屏下1px border

由于高清屏的特性,1px是由2×2个像素点来渲染,那么我们样式上的border:1px在Retina屏下会渲染成2px的边框,一般有以下几种方法:

  • 图片
  • 阴影
  • 缩放

移动版开发采用软图片的方法:

.border {
background-image:linear-gradient(180deg, red, red 50%, transparent 50%),
linear-gradient(270deg, red, red 50%, transparent 50%),
linear-gradient(0deg, red, red 50%, transparent 50%),
linear-gradient(90deg, red, red 50%, transparent 50%);
background-size: 100% 1px,1px 100% ,100% 1px, 1px 100%;
background-repeat: no-repeat;
background-position: top, right top, bottom, left top;
padding: 10px;
}

同样的方式也可以搞定分割线:

.border {
background-image:linear-gradient(180deg, #ccc, #ccc 50%, #fff 50%);
background-size: 100% 1px;
background-repeat: no-repeat;
background-position: bottom;
}

2.safari 工具栏隐藏

当用户在垂直模式(portrait )滚动页面时,底部工具栏将消失,URL栏变成一个小的半透明的条出现在顶部。

水平模式(landscape),用户滚动页面底部工具栏和主域名栏同时消失,变成完整的全屏模式。

当用户轻敲底部的时候,底部工具栏会出现,导致用户无法点中底部链接,如:加入购物车按钮

解决方案:让工具栏始终隐藏,当用户轻敲URL栏时出现:

<meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui'/>

参数minimal-ui主要功能是让iOS7.1设备中的Safari移动地址栏和下面的工具条不显示

3.safari bfcache

BFCache(Back-Forward Cache)可以翻译成往返缓存。这是用来加速前进后退操作 时页面展示时使用的一种技术。

由于移动端网速特性,跳转页面改用js跳转,触发click事件先弹出loading层,然后location.href="xxx",当用户返回的时候,没有重新加载页面,loading层不会消失。

解决方案:利用pageshow/pagehide事件来检测BFcache的使用情况

$(window).on('pageshow',function(event){
if (event.persisted) {
toolfix();
$.jPops.hideAlerts();
$('#J_search').html('').addClass('a-search-btn');
$('#gallery-page').show();
$('#gallery-search').hide();
initBack();
}
});

http://isux.tencent.com/responsive-web-design.html

Retina屏下1px border的更多相关文章

  1. Retina屏实现1px边框

    问题描述 通常我们实现边框的方法都是设置1px的边框,但是在retina屏上因为设备像素比的不同,边框在移动设备上的表现也不相同,例如在devicePixelRatio = 2的retina屏下会显示 ...

  2. 移动端Retina屏boder 1px显示为2px或3px的解决方法

    我们在开发移动端web项目时经常遇到设置border:1px,但是显示的边框却为2px或是3px粗细,这是因为设备像素比devicePixelRatio为2或3引起的. 何为“设备像素比deviceP ...

  3. [转]retina屏下支持0.5px边框的情况

    2014-12-31更新:截至到IOS8.1,safari仍不支持@supports待safari支持@supports, 就可以利用0.5px了! 2014-7-25更新:1. 修正dpr = 1. ...

  4. 移动端视网膜(Retina)屏幕下1px边框线 解决方案

    原因: 因为Retine屏的分辨率始终是普通屏幕的2倍,1px的边框在devicePixelRatio=2的retina屏下会显示成2px. 但在IOS8中,已经支持0.5px了,那就意味着, 在de ...

  5. mobile web retina 下 1px 边框解决方案

    本文实际上想说的是ios8下 1px解决方案. 1px的边框在devicePixelRatio = 2的retina屏下会显示成2px,在iphone 6 plug 下,更显示成3px.由其影响美感. ...

  6. 再谈mobile web retina 下 1px 边框解决方案

    本文实际上想说的是ios8下 1px解决方案. 1px的边框在devicePixelRatio = 2的retina屏下会显示成2px,在iphone 6 plug 下,更显示成3px.由其影响美感. ...

  7. Retina 屏移动设备 1px解决方案

    做移动端H5页面开发时都会遇到这样的问题,用 CSS 定义 1px 的实线边框,在 window.devicePixelRatio=2  的屏幕上会显示成 2px,在 window.devicePix ...

  8. 移动端 Retina屏 各大主流网站1px的解决方案

    Retina屏的移动设备如何实现真正1px的线? 在retina屏下面,如果你写了这样的meta <meta name="viewport" content="in ...

  9. Retina屏的移动设备如何实现真正1px的线

    前些日子总被人问起 iOS Retina 屏,设置 1px 边框,实际显示 2px,如何解决?原来一直没在意,源于自己根本不是像素眼……今天仔细瞅了瞅原生实现的边框和CSS设置的边框,确实差距不小…… ...

随机推荐

  1. Azure 负载平衡器新分发模式

    Yves Pitsch Azure 网络首席项目经理 Azure负载平衡器是一种第四层(TCP.UDP)类型的负载平衡器,它可以将传入流量分发到云服务中正常运行的服务实例上,或者分发到负载平衡器集内所 ...

  2. ECSHOP:首页实现显示子分类商品,并实现点击Tab页切换分类商品

    例子:首页实现显示子分类商品,并实现点击Tab页切换分类商品(非AJAX) 开始:    1. 打开调试开关     文件地址:include/cls_template.php 找到 : functi ...

  3. 模拟post请求方法

    2

  4. C# 创建WebServices及调用方法

    发布WebServices 1.创建  ASP.NET Web 服务应用程序 SayHelloWebServices 这里需要说明一下,由于.NET Framework4.0取消了WebService ...

  5. memcached 学习笔记

    memcached是高性能的分布式内存缓存服务器.一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态应用的速度.提高可扩展性. Memcached基于一个存储键/值对的hashm ...

  6. oracle触发器学习

    转自:http://blog.csdn.net/indexman/article/details/8023740/ 本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触 ...

  7. 图像特征提取三大法宝:HOG特征,LBP特征,Haar特征

    (一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...

  8. Code First 更新数据库结构

    参考:http://blog.csdn.net/sxycxwb/article/details/12186159 0.删除之前的数据库 1.Run the Enable-Migrations comm ...

  9. 【安全】requests和BeautifulSoup小试牛刀

    web安全的题,为了找key随手写的程序,无处安放,姑且贴上来. # -*- coding: UTF-8 -*- __author__ = 'weimw' import requests from B ...

  10. Spark生态之SparkR