tml兼容性
于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;
}
- margin-top传递--解决办法:触发BFC、haslayout
- 上下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
解决办法:
- 两个浮动元素中间避免出现内联元素或者注释
- 与父级宽度相差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兼容性的更多相关文章
- 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 ...
- 前端css兼容性与易混淆的点
一.常用的骨灰级清除浮动 .clearfix:after { content: "."; display: block; height:; clear: both; visibil ...
- SQL Server2008R2 在windows8上安装,出现“兼容性”和 “执行未经授权的操作”的错误!
本人是windows8.1的操作系统,亲测安装成功 解决方法如下: 1.卸载干净sql Server2008r2,包括注册表内容,删除c盘下的安装路径! 2.关闭防火墙(这步很重要) 3.断开网络连接 ...
- [转载]强制不使用“兼容性视图”的HTML代码
在IE8浏览器以后版本,都有一个"兼容性视图",让不少新技术无法使用.那么如何禁止浏览器自动选择"兼容性视图",强制IE以最高级别的可用模式显示内容呢?下面就介 ...
- 企业IT管理员IE11升级指南【16】—— 使用Compat Inspector快速定位IE兼容性问题
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- 浅谈WebService的版本兼容性设计
在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...
- position:sticky的兼容性尝试
开篇 笔者刚刚结束淘宝的工作,现在加入了一家有青春活力的垂直电商公司,正对着阿里巴巴的西溪园区,最近一直在熟悉新的工作环境和规范,因此博客有好些时间没有更新了,在此抱歉! 在忙碌完公司的发布系统之后, ...
- 常用原生JS方法总结(兼容性写法)
经常会用到原生JS来写前端...但是原生JS的一些方法在适应各个浏览器的时候写法有的也不怎么一样的... 今天下班有点累... 就来总结一下简单的东西吧…… 备注:一下的方法都是包裹在一个EventU ...
- Atitit Atitit.软件兼容性原理----------API兼容 Qa7
Atitit Atitit.软件兼容性原理----------API兼容 Qa7 1. 兼容性的重要性与反面教材1 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法 ...
随机推荐
- Memcache相关面试题
1)memcached的cache机制是怎样的? 懒惰算法 +最近最少使用原则 2)memcached如何实现冗余机制? 冗余:就是有好多好多不经常使用的. 可以不用实现冗余机制,如果非要实现.那就搞 ...
- 彻底解决降级安装失败无法彻底卸载应用bug
彻底解决魅族手机无法彻底卸载应用bug使用Flyme系统的同学可能会遇到一个问题:卸载了某些软件(例如通过开发者模式调试安装的应用)后,实际这个应用还残留在系统,当你用低版本或者其他签名的apk覆盖安 ...
- 实现点击EditText登录时,界面上移避免键盘遮挡界面
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&quo ...
- (转)硬盘结构,主引导记录MBR,硬盘分区表DPT,主分区、扩展分区和逻辑分区,电脑启动过程
硬盘结构硬盘有很多盘片组成,每个盘片的每个面都有一个读写磁头.如果有N个盘片.就有2N个面,对应2N个磁头(Heads),从0.1.2开始编号.每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以电 ...
- 《鸟哥的Linux私房菜》笔记——04. 简单命令行
键入命令 [dmtsai@study ~]$ command [-options] parameter1 parameter2 ... 指令 選項 參數(1) 參數(2) 注意:有时也可以使用 + 放 ...
- Eclipse中使用GIT更新项目
GIT更新项目: 右击项目——Team——Pull:
- Java实现18位身份证校验代码
import java.util.Scanner; /** * 18位身份证校验 * @author [J.H] * */ public class Test { // 身份证校验 public st ...
- CF1041F Ray in the tube构造_思维
不难发现起点必定是一个点. 每次间隔的距离一定是 2k2^k2k,关键就是要判断两点是否在同一跳跃距离上可被同时覆盖. 我们可以对上边进行 x1≡x_{1}\equivx1≡ x2mod(2∗dx) ...
- [NOIP补坑计划]NOIP2015 题解&做题心得
感觉从15年开始noip就变难了?(虽然自己都做出来了……) 场上预计得分:100+100+60~100+100+100+100=560~600(省一分数线365) 题解: D1T1 神奇的幻方 题面 ...
- 字体样式(.ttf/.woff)文件的配置引入
在引入前端框架部分功能时,有时需要配置字体样式.可以这样配置:在 .ttf的同级目录下,创建icon.css文件,写入: @font-face {font-family: "element- ...