web移动端常见问题(一)

1.1物理像素

产生原因:css样式的最小值是1px,不过这个1px只是代表css像素,在高清屏上展示的物理像素要>1(iphone6 1css像素=2物理像素。而iph6p则是1css像素=3物理像素)

解决思路:想要展示1物理像素,只能使用scale缩放。

方法一:局部缩放
哪个元素要用到1物理像素,就设置哪个元素进行垂直方向的缩放。至于是缩放1/2还是1/3就看屏幕的DPR(物理像素与设备独立像素的比例值)




    
    
    
    时钟
    


    

方法二:全局缩放
使用meta标签方法对全局所有元素进行缩放,但是会影响到所有的元素。需要缩放的元素使用px设置大小,而不需要缩放的元素使用rem设置大小,所以rem的值必须是缩放前2-3倍,这样才保证最终缩放值是1

效果对比:
web移动端常见问题(一)_第1张图片

2.自动识别手机号码

移动浏览器会自动将符合格式的文本识别为手机号码,并展示成一个a链接,点击后可以调用拨打电话的功能,例如
(有些浏览器默认就已经屏蔽了自动识别手机号码这个功能)

18011757617

web移动端常见问题(一)_第2张图片

如果想禁用这功能,需要添加meta标签,告诉浏览器不要识别此类文本

如果你想在页面中调用拨号或其他功能,可以这样设置


    
    
    

3.禁止复制、选中文本

移动端长按会选中文字,这是个默认事件
web移动端常见问题(一)_第3张图片

如果有需要的话,可以禁止这个功能。方法就是给元素设定css,让元素的文本无法被选中

.forbid_select{
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
    user-select:none;   
}

如果全局都想禁止复制、选中文本,可以使用通配符所有标签都禁止选中文本,但是这样会让iOS的input框无法聚焦,可以重新给input标签设置user-select属性为auto
input框无法聚焦:用户可以点击input弹出输入窗口,但是输入框内没有焦点,无法输入文字
注意:某些浏览器使用通配符会失效,例如alook浏览器,但是单独给某个div设置就可以


    

4.按钮圆角过圆

每个浏览器默认的元素样式是有差异的,比如苹果手机中为了美化按钮,默认给按钮添加了圆角,例如


    
    

web移动端常见问题(一)_第4张图片

解决办法:设置appearance属性为none,另外苹果的浏览器默认input元素都有圆角,需要手动去除

button{
    -webkit-appearance: none;
}
input{
    -webkit-appearance: none;
    border-radius: 0;
}

5.字体增强 font boosting

这个特性被称做「Text Autosizer」,又称「Font Boosting」、「Font Inflation」,是 Webkit 给移动端浏览器提供的一个特性。
当我们在手机上浏览网页时,很可能因为原始页面宽度较大,为了在手机屏幕中完整的显示整个页面,就会把页面缩小。(参见布局视口,一般默认980px)
但是页面是显示完整了,但是里面的内容却因为缩小了而看不清。
而 Font Boosting 特性在这时会自动将其中的文字字体变大,让人们方便的阅读页面中的文本。

解决办法一:设置完美视口,不让页面缩放,自然就不会有 font boosting

解决办法二:设置max-height

6.点击高亮

在移动端,点击可点击元素时(a,button),android下会出现淡蓝色背景,IOS下会出现灰色背景
可以通过-webkt-tap-hightlight-color属性的设置,取消点击时出现的背景效果

*{
    -webkit-tap-highlight-color: transparent;
}

7.滚动回弹

-webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果
他有2个值:
auto:使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止(默认)
touch:使用具有回弹效果的滚动
body标签默认就有滚动回弹的效果,而我们自己所写的div容器没有这个效果,想要给自己写的div容器设置滚动回弹的效果,除了使用插件,还可以设置这个属性为touch

ul{
    height: 300px;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

你可能感兴趣的:(web移动端常见问题(一))