于IE6下,不能识别我们的h5标签,解决办法

  • 主动使用js创建header,footer等标签。--存在的问题,这种方法创建的元素,对于IE6来说,相当于自定义标签,而自定义标签属于 默认属于行内元素 ,所以,我们要在css样式里面给对应的标签加上display:block;
  • 还有一个js插件,它主动的帮我们做完了那种h5标签初始化的操作,所以完全不用担心标签兼容性问题,你只需要引入到页面就可以 html5shiv.js

块级元素和内联元素的嵌套规则:

  • p、h1-h6、td、caption、dt这些标签只能放 __内联元素__--坚决不要放块级元素> * 块级元素与块级元素并列、内嵌元素与内嵌元素并列
  • 在HTML里有几个元素是比较特别的:
  • ul、ol、dl、table,它们的子一层必须是指定元素,ul、ol的子一级必须是li;
  • dl的子一级必须是dt或者dd;
  • table的子一层必须是caption>或thead、tfoot、tbody等,而再子一层必须是tr (tr只存在于thead、tfoot、tbody中),之后才是可放内容的td或者th。  
    • a标签不能包含其他a标签
    • pre标签不能包含img,object,big,samll,sub和sup标签
    • button标签不能包 含input,select,textarea,label,button,form,fieldset,iframe 和isindex标签
    • label标签不能包含其他label标签
    • form标签不能包含其他form标签

magin兼容性问题

当我们按照下面的写法,会存在的问题:

存在的问题的截图:

<div class="box">
<div class="item"></div>
<div class="item"></div>
</div>

对应的css

.box{
background-color: green; }
.item{
height: 50px;
background-color: red;
margin: 50px;
}
  1. margin-top传递--解决办法:触发BFC、haslayout
  2. 上下margin叠压--坍塌--解决办法:尽量使用同一方向的margin,比如都设置top或者bottom

  如下面的代码:

解决后的截图:

display:inline-block;在IE7及以下无效

代码:

在chrome下的样子

对,这是我们想要的效果。IE7以下,都还是竖着排列,因为div是块级元素

IE7以下的效果:

inline-block它是css2.1的标准,不兼容IE7以下。

解决办法:加hack以及触发haslayout

IE以下还把元素之间的空隙去掉了。IE8及以上还有chrome还是有间隙的。

IE6最小高度问题(它是19px):加*overflow:hidden;

就正常了。

IE6双边距问题:当元素浮动后,再给元素设置margin,就会产生双倍边距。比如:你设置的margin-left:50px;当加浮动后,在IE6下量,会发现margin的距离变为100px,当然,这个双边距只对浮动的第一个有效,后面的是正常的。

当设置右边的margin-right是没有双边距的

代码:

css:

解决办法:针对IE6,IE7添加*display:inline; 样式

通过下面的图例可以看出对比:

li里元素浮动,在IE6,IE7下产生4px间隙问题

解决办法:

解决后:

浮动元素之间注释,导致多出一些前面的文字,像是被复制了,贴在后面的小尾巴。

IE6,7产生这个Bug的条件:产生两个浮动元素中间有注释或者内联元素并且和父级宽度相差不超过3px

解决办法:

  1. 两个浮动元素中间避免出现内联元素或者注释
  2. 与父级宽度相差3px或以上

这里是只是给左边盒子加了浮动,没加内容,右边盒子有浮动,且有内容,宽度==父元素宽度    中间还夹杂着内联元素以及注释

bug图

解决办法上面已经列出来了,就是减小子元素的宽度,或者2个浮动中间不加内联元素或注释。尽量让块级元素处于同一个等级。

IE6,IE7父元素的overflow:hidden;包不住设有position:relaive的子元素--既然是说要包住子元素,那子元素肯定的宽高大于父元素,才能撑出去。

产生的bug图:

解决办法:针对ie6、7给父级元素添加相对定位--让父元素和子元素处于统一环境下,relative只要不设置top和left值,没啥影响,它还是在最初的位置。

IE6下绝对定位元素父级宽高是奇数,绝对定位元素的right和bottom值会有1px的偏差

解决方案:避免父级宽高出现奇数

IE6下绝对定位元素和浮动元素并列绝对定位元素消失

chrome下:

正常,左边空的那是margin-left:50px;

IE6下:黄色块消失了

bug产生条件:浮动元素和绝对定位元素是同级的话定位元素就会消失。解决方案:所以咱们只要让他们俩不处于同级就可以避免这个bug。-比如在绝对定位的元素外面套一层,以阻断bug条件的产生。

IE6下input的空隙

chrome下:正常情况下,input是不应该有背景的,因为宽度和box一致,box高度是有input控制的。

IE6下:红色是加给box的背景,但是在IE6下竟然能看到,说明有空隙。

解决方案:给input元素添加float -- hack

IE6 下 输入类型表单控件背景问题

在IE6下,当你输入的内容过多,会将图标挤走。

解决方案:设置background-attachement:fixed;但是在chrome下,图标会偏上移动。其实这个Bug可以忽略,可以用其他方法加图标。

什么是BFC模型

有哪些方法可以触发BFC模型

什么是haslayout?

有哪些方法可以触发haslayout?

tml兼容性的更多相关文章

  1. Atitit s2018.6 s6 doc list on com pc.docx Atitit s2018.6 s6 doc list on com pc.docx  Aitit algo fix 算法系列补充.docx Atiitt 兼容性提示的艺术 attilax总结.docx Atitit 应用程序容器化总结 v2 s66.docx Atitit file cms api

    Atitit s2018.6 s6  doc list on com pc.docx Atitit s2018.6 s6  doc list on com pc.docx  Aitit algo fi ...

  2. 前端css兼容性与易混淆的点

    一.常用的骨灰级清除浮动 .clearfix:after { content: "."; display: block; height:; clear: both; visibil ...

  3. SQL Server2008R2 在windows8上安装,出现“兼容性”和 “执行未经授权的操作”的错误!

    本人是windows8.1的操作系统,亲测安装成功 解决方法如下: 1.卸载干净sql Server2008r2,包括注册表内容,删除c盘下的安装路径! 2.关闭防火墙(这步很重要) 3.断开网络连接 ...

  4. [转载]强制不使用“兼容性视图”的HTML代码

    在IE8浏览器以后版本,都有一个"兼容性视图",让不少新技术无法使用.那么如何禁止浏览器自动选择"兼容性视图",强制IE以最高级别的可用模式显示内容呢?下面就介 ...

  5. 企业IT管理员IE11升级指南【16】—— 使用Compat Inspector快速定位IE兼容性问题

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  6. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  7. position:sticky的兼容性尝试

    开篇 笔者刚刚结束淘宝的工作,现在加入了一家有青春活力的垂直电商公司,正对着阿里巴巴的西溪园区,最近一直在熟悉新的工作环境和规范,因此博客有好些时间没有更新了,在此抱歉! 在忙碌完公司的发布系统之后, ...

  8. 常用原生JS方法总结(兼容性写法)

    经常会用到原生JS来写前端...但是原生JS的一些方法在适应各个浏览器的时候写法有的也不怎么一样的... 今天下班有点累... 就来总结一下简单的东西吧…… 备注:一下的方法都是包裹在一个EventU ...

  9. Atitit Atitit.软件兼容性原理----------API兼容 Qa7

    Atitit Atitit.软件兼容性原理----------API兼容 Qa7 1. 兼容性的重要性与反面教材1 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法 ...

随机推荐

  1. centos + nodejs + egg2.x 开发微信分享功能

    本文章发到掘金上,请移步阅读: https://juejin.im/post/5cf10b02e51d45778f076ccd

  2. VS自动注释——GhostDoc

    直接上图片,使用步骤是按顺序来的: 安装就不多说了,直接下一步,下一步.直接讲讲如何自定义注释规则 软件下载链接:http://pan.baidu.com/s/1dF5TSel 密码:peuz 链接: ...

  3. 限制input 内部字数

    当输入字数多于限定值后,输入框显示不出来多出的字符 对于input来说,innerHTML 不能查询和更改,只能用value 来 size 属性规定输入字段的宽度 size 属性定义的是可见的字符数 ...

  4. node.js连接数据库登录注册,修改用户(页面的ajax请求)

    首先给大家看一下目录结构,结构如下: index.html 首页(显示所有的用户信息) login.html 登录页 register.html 注册页 db.js 配置链接数据库参数 dbhelpe ...

  5. .net 三大核心对象

    .net 三大核心对象 HttpRequest 现在总算轮到第一个核心对象出场了.MSDN给它作了一个简短的解释:“使 ASP.NET 能够读取客户端在 Web 请求期间发送的 HTTP 值.”这个解 ...

  6. 「JavaSE 重新出发」05.01 继承

    继承 一个对象变量可以指示多种实际类型的现象被称为多态(polymorphism). 在运行时能够自动地选择调用哪个方法的现象称为动态绑定(dynamic binding). 如果是private方法 ...

  7. DataTables入门

    转载 https://blog.csdn.net/gfd54gd5f46/article/details/65938189

  8. 理解UIView的绘制

    界面的绘制和渲染 UIView是如何到显示的屏幕上的. 这件事要从RunLoop开始,RunLoop是一个60fps的回调,也就是说每16.7ms绘制一次屏幕,也就是我们需要在这个时间内完成view的 ...

  9. 粘包解决高端_Client

    from socket import * #导入套接字模块的所有命令import struct #导入struck模块,用于封装数据流长度# from functools import partial ...

  10. HDU-2844 Coins 多重背包 物品数量二进制优化

    题目链接:https://cn.vjudge.net/problem/HDU-2844 题意 给你一些不同价值和一定数量n的硬币. 求用这些硬币可以组合成价值在[1 , m]之间的有多少. 思路 多重 ...