问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

前端面试题,移动端兼容问题有哪些,安卓和ios问题?

发布网友 发布时间:2022-04-22 06:22

我来回答

1个回答

热心网友 时间:2024-02-24 13:10

浏览器兼容性涉及的内容有很多,特别是针对IE浏览器,以下整理出五种常见的浏览器兼容性解决方法。

一、样式初始化

由于各大浏览器会有自身的默认样式,并且不尽相同,所以为了尽可能的保证样式的统一性,前端在开发项目之前都会先进行样式格式化,最常见的分为以下几个方面。

1.pandding 值和 margin 值均设置为 0

将html、body、a、li、ol、input、textarea、select、button 等标签的 padding 值和 margin 值设置为 0。

2.html 标签

设置统一的字体,如果使用 rem 单位,则 html 需要设置合适的字号。

3.a 标签

设置统一的颜色,将 text-decoration 属性设置为 none。

4.ol 和 li 标签

list-style 统一设置为 none。

5.input、textarea、select、button 等标签初始化

border 设置为 none;

根据需要设置颜色和背景色。

二、使用不同类型的浏览器内核前缀

1.Chrome(谷歌浏览器) 与 Safari(苹果浏览器) 内核:Webkit (中译无) 前缀:-webkit-

2.IE (IE浏览器) 内核:Trident (中译三叉戟) 前缀:-ms-

3.Firefox (火狐浏览器) 内核:Gecko(中译壁虎) 前缀:-moz-

4.Opera (欧朋浏览器) 内核:Presto(中译迅速) 前缀:-o-

例:

-webkit-border-radius: 10px; /谷歌浏览器/
-ms-border-radius: 10px; /IE浏览器/
-moz-border-radius: 10px; /火狐浏览器/
-o-border-radius: 10px; /欧朋浏览器/
border-radius: 10px;
1
2
3
4
5
三、针对IE浏览器不同版本的解决方案

1.对于低版本的 IE 浏览器使用 CSS hack( 即给特点前缀)

注:以下符号是写在属性名前面。

兼容 IE6 的 hack 符号:- 或 _

兼容 IE6 、7 的 hack 符号:` ~ ! @ # $ % ^ & * ( ) + = [ ] | < > , . 任意一个符号

兼容 IE6、7、8 的 hack 符号:.

注:以下符号是写在属性值与分号直接,中间不留空格。

兼容 IE8 的 hack 符号:\0/

兼容 IE8、9、10 的 hack 符号:\0

兼容 IE6、7、8、9、10 的 hack 符号:\9

例:

/hack符号在前/
_border-radius: 10px; /IE6/
+border-radius: 10px; /IE6\7/
.border-radius: 10px; /IE6\7\8/

/hack符号在后/
border-radius: 10px\0/; /IE8/
border-radius: 10px\0; /IE8\9\10/
border-radius: 10px\9; /IE6\7\8\9\10/
1
2
3
4
5
6
7
8
9
2.为不同的版本编写独立的样式,其他浏览器识别不到。

例:大于 IE9 的浏览器使用这个单独的 style9.css 样式

1
2
3
例:只有 IE6 浏览器使用的 style6.css 样式

1
2
3
四、其他特殊样式

1.cursor 属性的 hand 值和 pointer 值

问题:firefox 浏览器不支持 hand 值,但其他浏览器均支持 pointer 值。
解决: 统一使用 cursor 属性的 pointer 值。

2.水平居中

问题:IE8 及IE8 以下版本浏览器不可通过设置 margin:0 auto 实现水平居中。

解决: 可通过设置父级 text-align:center 实现。

3.属性值 “inherit”

问题:IE8 及IE8 以下版本浏览器不支持属性值 “inherit”。

解决:谨慎使用属性值 “inherit”。

五、JS兼容性

1.ES6语法

问题:IE11 不支持箭头函数、class 语法等(报 SCRIPT1002: 语法错误),不支持 Set 和 Map 数据结构(不报错)及 Promise 对象,支持 let 和 const,IE10 及以下不支持任何 ES6 语法。

解决:如果要兼容IE浏览器的项目请使用 ES5 语法或者使用 Babel 进行转换。

2.操作 tr 标签

问题:IE9 及 IE9 以下版本浏览器,不能操作 tr 标签的 innerHTML 属性。

解决:可以操作 td 标签的 innerHTML 属性。

3.Ajax

问题:IE9 及 IE9 以下版本浏览器无法使用 Ajax 获取接口数据。

解决:在使用 Ajax 请求之前设置 jQuery.support.cors=true。

4.event 对象的 srcElement 属性

问题:IE8 及 IE8 以下版本浏览器 event 对象只有 srcElement 属性,没有 target 属性。

解决:obj = event.target?event.target:event.srcElement。

5.DOM 事件绑定

问题:IE8 及 IE8 以下版本浏览器是用 attachEvent() 方法,而其他浏览器是 addEventListener() 方法。

解决:判断 IE 浏览器版本,如果是 IE8 及以下 事件绑定则使用 attachEvent() 方法,注意 attachEvent() 方法的用法,第一个参数为“onclick” 而不是“click”。并且没有第三个参数。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑分辨率设置多少合适笔记本电脑分辨率多少最佳 各尺寸笔记本电脑的最佳分辨率 2022年高考480到510分能上山东科技大学吗 朋友借了我一万块钱,现在坐牢了怎么还钱? 天王星和海王星虽然看似一对姊妹星,但还是有区别 ...值得收藏吗?现在分别只都多少钱,照片上有一个铜币的 谁能告诉我这是一枚什么样的铜币,值不值钱? 有谁知道这铜币值不值钱,懂家告诉我一下!谢谢 有谁知道这个铜钱的来历 可以进行异地公积金贷款吗 ios 8.1的iOS 8.1问题汇总 ios有什么能导入excel题库的免费app吗 iOS 问题:怎样从字符串中,提取数字出来 ios object-c 编程题求解 如何出一份好的 iOS 工程师笔试题 ios操作系统大作业写什么题目 抖音手机停机料密码也忘记了可以找回吗? IOS开发面试题 UIView的frame和bounds属性的真正的... iOS:面试一般问哪些 iOS开发会面试哪些问题 手机掉了,新手机登录抖音后没改密码怎么办 建立一个数据结构(ios开发面试题) 手机号停机了,抖音密码也不记得了,抖音怎样找回呢? ios面试题 这段代码有什么问题 iOS面试题有哪些? iOS面试技术难点有哪些 求助ios的编程题目(swift) 原手机号不用了,密码忘了,现在怎么登录原手机抖... ios面试项目难点有哪些 手机掉了抖音不知道密码怎么办? 什么是key window ios面试题 ios答题的app有哪些 请问在评选研究生国家奖学金时,所发的科研成果只... 怎样保证科研研究成果的重复再现 自己设计的logo被一外企采用,在香港注册成了商标... 这些年靠吹出来的虚假科研成果有哪些? 在知道上的回答有没有知识产权保护,比如是我的科研... 移动139邮箱,默认的密码是多少? 139手机邮箱初始密码是什么? 139邮箱密码是多少 移动的139邮箱密码是什么啊? 139邮箱的初始密码是多少的? 139手机邮箱默认密码多少? 139手机邮箱默认密码多少 手机139邮箱的密码是多少? 移动的139邮箱密码是什么? 139邮箱的初始密码是多少? 139手机邮箱初始密码一般都是什么 139邮箱密码是什么啊?是自己手机密码吗? 谁知道139邮箱的密码是什么,怎么找回密码