于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. Spring学习笔记(一) 简介

    版权声明 本文是摘自IBM上Naveen Balani的一篇文章,原文请点击此处:http://www.ibm.com/developerworks/cn/java/wa-spring1/ Sprin ...

  2. 如何安装windows系统

    前言:装系统有两种方式,一种是下载系统镜像文件后解压ios文件到除c盘以外其他盘都可(如原系统是win10系统,则可以直接右键加载,而不必解压),然后运行.exe文件就可以自动安装了.这种方法在新款电 ...

  3. Caffe solver.prototxt学习

    在solver解决下面的四个问题: a.训练的记录(bookkeeping),创建用于training以及test的网络结构: b.使用前向以及反向过程对training网络参数学习的过程: c.对t ...

  4. mysql学习 1

    1.数据库(Database)是按照数据结构来组织.存储和管理数据的仓库 2.RDBMS即关系数据库管理系统(Relational Database Management System)的特点: 1) ...

  5. Android GreenDao 使用教程

    上一篇 总结了grendao 环境搭建以及简单的增删查改,接下来将全面解析框架的使用,基于上篇的orm模型(Note)数据库讲解 GreenDao的插入: 插入的方式有很多: daoSession.g ...

  6. ASP内建对象

    Active Server Pages 提供内建对象,这些对象使用户更容易收集通过浏览器请求发送的信息.响应浏览器以及存储用户信息(如用户首选项).本文简要说明每一个对象.有关每个对象的详细信息,请参 ...

  7. php基础------将二维数组转三维数组

    将二维数组转为三维数组 /** * 二维数组转三维数组(指定键为三维数组的键名) * @param [type] $arr [要排序的数组] * @param [type] $key [指定的键] * ...

  8. C语言基础 (4) 原码反码补码与数据类型

    1.回顾 使用gcc编译代码 gcc hello.c -o hello windows下编译代码 C语言编译步骤: 预处理(头文件展开,干掉注释) gcc -E hello.c -o hello.i ...

  9. PAT 天梯赛练习集 L2-022. 重排链表

    题目链接:https://www.patest.cn/contests/gplt/L2-022 给定一个单链表 L1→L2→...→Ln-1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln-1→L ...

  10. HTML 编码规范

    语法 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格或 tab 字符 在属性上,使用双引号 "",不要使用单引号 '' 属性名 / 属性值全小写,用中划线 - 做分隔符 ...