移动端兼容问题

iPhone不能识别YYYY-MM-DD格式的日期

所以在所有使用到日期转换的情况,需要先把日期中的 " - " replace 成 " / "。但与后端通信、页面之间通信时,建议继续保留YYYY-MM-DD的格式,因为" / "在http传参中需要进行转义。

页面间传递参数使用get方式

页面之间传递参数使用get有两个好处,第一,参数相当于保存在了地址中,当我下钻以后回退时,能保存下来参数;第二,方便第三方(例如原生)通过URL传参调用此页面。

图片缩放

图片缩放需要使用图片的情况,如果用 background背景图的写法,则图片不会随着弹性方案一起缩放,如果需要图片也一起缩放,则可以使用标签引入图片或是采用以下写法

.bgc{ 
  background:url("../../bg.png") no-repeat;
  background-size:100%
}

弹性方案下的圆

使用border-radius:50%,或者border-radius的值与宽高相等,都可实现完美的圆形,但是在不同的安卓手机中,会有不同程度的变形(有的扁圆,有的大,有的小);当使用px做为宽高的单位,border-radius:50%画出来的圆是不会变形的;但使用「em时,rem在换算为px时,会是一个带小数点的值,安卓对小于1px的做了处理(不同浏览器对小于1px处理方式不同,有的采用四舍五入,有的大于某个值展示1px否则就舍去),从而导致圆角不圆;在ios下就没有这个问题。为了解决兼容问题,建议如下实现:

.circle-base(4px, 4px);
  //绘制小图点
.circle-base(@width:4px;@height:4px) {
  width:@width*2;
  height: @height*2;
  transfonn: scale(.5);
  transform-origin: 0% center;
)

/deep/多层嵌套在移动端无法生效

/deep何以实现操作下面几层css式,但如果使用多层的/deep/嵌套(见如下错误示例)在PC端可以正常查看样式,但在移动端样式会无效。正确的写法应该是将需要添加/deep/的内容放到同一层(尽管逻辑上它们是有层级关系的)。

// 正确用法
.father{
  /deep/ .son-div{ 
    font-size: 10px; 
  }
  /deep/ .son-div-div{ 
    color: black; 
  }
  /deep/ .son-div-div-div{ 
    background: red; 
  }
}

 

posted @ 2021-09-06 13:45  bignewbie  阅读(15)  评论(0编辑  收藏  举报