解决一些常见兼容性问题

231 阅读1分钟

  1.兼容性问题

  • 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一。

  • Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示, 可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决。

  • 超链接访问过后hover样式就不出现了 被点击访问过的超链接样式不在具有hover和active了解决方法是改变CSS属性的排列顺序: L-V-H-A : a:link {} a:visited {} a:hover {} a:active {}

  • iOS img为空的时候,显示为一个框  解决方案 

     img[src=''],img:not([src]){  opacity: 0;}
    

   2.一些常见问题

  • 如何让overflow:scroll 平滑滚动?

    -webkit-overflow-scrolling: touch;

  • 常用判断某个对象之属于哪种内置类型

     Object.property.tostring.call() ,但此方法建立在toString()方法 未被修改的情况下

     instanceof

  • Ajax 解决浏览器缓存问题 

    1、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。
2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。 
3、在URL后面加上一个随机数: "fresh=" + Math.random();。 
4、在URL后面加上时间戳:"nowtime=" + new Date().getTime();。
5、如果是使用jQuery,直接这样就可以了 $.ajaxSetup({cache:false})。

  • 长时间按住页面闪退

   .element { -webkit-touch-callout: none; } 

  • IOS input 修改背景色无效   

       取消input默认颜色  -webkit-appearance:none; 

  • IOS canvas.toDataURL 无效

      设置 crossOrigin属性必须在src属性之前赋值