javascript 开发之网页兼容各种浏览器


Posted in Javascript onSeptember 28, 2017

javascript 开发之网页兼容各种浏览器

前言:

关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助.

一、CSS HACK

以下两种方法几乎能解决现今所有HACK.

1, !important

随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.)

<style>
#wrapper
{
width: 100px!important;
width: 80px;
}
</style>

2, IE6/IE77对FireFox

*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签.

<style>
#wrapper
{
#wrapper { width: 120px; }
*html #wrapper { width: 80px;}
*+html #wrapper { width: 60px;}
}
</style>

注意:

*+html 对IE7的HACK 必须保证HTML顶部有如下声明:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

二、万能 float 闭合(非常重要!)

关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup]

将以下代码加入Global CSS 中,给需要闭合的div加上 class="clearfix" 即可,屡试不爽.

<style>


.clearfix:after
{
content:".";
display:block;
height:0;
clear:both;
visibility:hidden;
}
.clearfix
{
display:inline-block;
}

.clearfix {display:block;}


</style>

三、其他兼容技巧(再次???

1, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决)

2, 居中问题.

1).垂直居中.将 line-height 设置为 当前 div 相同的高度, 再通过 vertical-align: middle.( 注意内容不要换行.)
2).水平居中. margin: 0 auto;(当然不是万能)

3, 若需给 a 标签内内容加上 样式, 需要设置 display: block;(常见于导航标签)

4, FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float的div在ie下 margin加倍等问题.

5, ul 标签在 FF 下面默认有 list-style 和 padding . 最好事先声明, 以避免不必要的麻烦. (常见于导航标签和内容列表)

6, 作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应.

7, 关于手形光标. cursor: pointer. 而hand 只适用于 IE.

P.S 至于IE5以及其他浏览器就没有必要兼顾了. 在这上面花时间不值得.

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
点击广告后才能获得下载地址
Oct 26 Javascript
JavaScript 5 新增 Array 方法实现介绍
Feb 06 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
Jan 23 Javascript
使用Chrome浏览器调试AngularJS应用的方法
Jun 18 Javascript
鼠标悬停小图标显示大图标
Jan 22 Javascript
javascript验证手机号和实现星号(*)代替实例
Aug 16 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
Dec 24 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
Jan 20 Javascript
ES6数组的扩展详解
Apr 25 Javascript
vue select组件的使用与禁用实现代码
Apr 10 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
Apr 29 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
Jul 06 Javascript
JavaScript中重名的函数与对象示例详析
Sep 28 #Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
Sep 28 #Javascript
微信小程序下拉刷新界面的实现
Sep 28 #Javascript
详解Vuex中mapState的具体用法
Sep 28 #Javascript
Node.js学习之地址解析模块URL的使用详解
Sep 28 #Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
Sep 28 #Javascript
React Native模块之Permissions权限申请的实例相机
Sep 28 #Javascript
You might like
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
JQuery for与each性能比较分析
2013/05/14 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
JavaScript模块模式实例详解
2017/10/25 Javascript
浅谈AngularJs 双向绑定原理(数据绑定机制)
2017/12/07 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
python求素数示例分享
2014/02/16 Python
python使用opencv进行人脸识别
2017/04/07 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
直接有效的自我评价
2014/01/11 职场文书
大学生交通专业求职信
2014/09/01 职场文书
商业用房租赁协议书
2014/10/13 职场文书
2014个人年度工作总结
2014/12/15 职场文书
初中政治教学工作总结
2015/08/13 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python
MySQL Server层四个日志的实现
2022/03/31 MySQL