【面试季之三】IE6兼容问题
最近面试真的碰到很多基础的问题,平时在工作的时候往往可以直观的看到页面的问题,然后进行代码调试,调试不明白了还可以上网查一下。可是面试的时候,就是得当场反应出来,并且还得能系统的说出1、2、3、4、5。。。每每是面试完了就各种懊恼。。。这个纯属活该,谁叫平时自己不总结的呢!昨儿面试回来把脚崴伤了,这几天卧床养伤,顺便把各种基础性问题做个总结,让自己涨涨记性!
前端最常见的问题,应该没有之一了吧。。。IE6兼容性问题,虽然小盖童鞋早已经抛弃了IE6,可我天朝人民还是很恋旧的。。。
一 文档声明:这个我一般都会写,主要写两种一是过渡型二是html5的文档声明,如果不写,恭喜你触发了IE6的怪异模式,主要是更改了盒模型;
二 默认样式:这个不单单针对IE6,主要是每个浏览器可能都有不一样的地方,所以重置默认样式基本已经是默认的规则了吧;
三 断头台问题:看着比较吓人,其实我也不知道为什么会起这么个名字,主要是指在IE6下,同向浮动的元素会出现双倍margin的现象,解决的方式比较简单,就是设置浮动元素的display:inline即可;
四 img图片外添有a标签的时候会有边框border,解决方案就是设置border:0;
五 img图片之间默认是有一定间距的,这个一般是因为在布局的时候有“回车”造成的,解决方案一是可以牺牲布局,不加回车,当然我一般不会这么干,会让代码太难阅读和维护,姐是一个颜控者(囧);二是将img图片进行浮动;
六 浮动的块元素和非浮动的块元素会有间隙,解决方案就是让块元素都浮动;
七 li标签在设置了宽高且子元素浮动后,li之间会有间隙,解决方案一是不设宽高二是子元素不浮动;
八 IE和FF:cursor:hand(IE);cursor:pointer(FF);解决方案两个都写;
九 IE6不支持Max和Min的宽高,解决方案使用hack单独设置:_width和_height,在IE中这两个值会根据内容自动进行调整;
十 IE6不支持PNG24,解决方案一是可以使用PNG8、Gif等其他格式,二是使用滤镜,好长一段,我就不写了,因为记不住,每次都是复制粘贴。。。
十一 IE6不支持opacity,解决方案是使用滤镜filter:alpha(opacity=num);这里建议大家会手写;
十二 最小高度问题:有一种清除浮动的方式是使用空标签,可是在IE小有最小高度,解决方案:{height:0px; overflow:hidden; clear:both};
以上基本上是我遇到过的,之前面试还被问到了一个IE6下弹出层无法盖住select框,当时卡住了,因为真心没碰见过,后来想想,盖不住就把select框隐藏了呗,回来查了一下这确实也是一个解决方案,另外还有一个方案是使用iframe,在这里先列出来,有时间的时候写一下试试。
IE hack:_ie6, +ie7, ie8\0, ie9\9\0 这些是比较常用的hack方法
以下这段是我在整理其他问题的时候看到的一段hack,以前没用过,在这里列出来共享一下,希望哪天有机会,可以实践一下。
在区分Win和Mac中Internet Explorer的诸多方法中,最常用就是Holly招数。Holly招数的原理是这样的,CSS代码
- /* 这段代码只有IE/Win可以看见 \*/
- CSS 规则
- /* 结束Hack */
上面的代码中有两行注释,其中第一行结束时出现了反斜杠(\),在Mac的Internet Explorer中会认为注释并没有结束,于是继续向下直到第一个完事的“*/”出现,这中间的所有字符都被当作是注释,而IE/Win却也只会把第一行和第三行看作是注释,中间的为有效代码。所以这样就区分出来了不同平台上的IE了。
【面试季之三】IE6兼容问题的更多相关文章
- 让IE6兼容position:fixed
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 自写网站入门阶段之三:兼容大战与jq初探
自上一次作小结至今已整整一个月,在忙乎了半个月的工作之后闲下来的一个下午我终于可以再次作这个阶段的小结了.首先庆幸的是在同学的推荐下我顺利的找到了工作并于月初3号正式上班,这一点非常感谢他,让我免去了 ...
- ie6兼容问题汇总
这几天在查找和解决网页在ie6下的兼容性问题花了我不少的时间,参考了网上的一些解决方法和自己做出来比较有效果的给大家参考一下,也方便我日后再用到: 1.IE的cache设置为Every visit t ...
- IE6兼容问题并解决总结
1.使用声明你必须经常在html网页头部放置一个声明,推荐使用严格的标准.例如<!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML4.01//EN” "http: ...
- 常见的IE6兼容以及css兼容
IE6虽然随着XP系统退出市场在国外基本基本消失,但是在国内依然占据很大的市场份额.政务网站.页游官网等依然要考虑到IE6用户的体验.如果你的网站使用CSS3等“新技术”时,就必须果断放弃IE6的兼容 ...
- css bug(ie6兼容问题)
二.五大浏览器内核1.trident(MSHTML)(三叉戟:三叉线,三齿鱼叉) Gecko (壁虎) presto(迅速的) webkit(safari内核,Chrome内核原型,他是苹果公司自己的 ...
- 常见IE6兼容问题总结
1.<!DOCTYPE HTML>文档类型的声明. 产生条件:IE6浏览器,当我们没有书写这个文档声明的时候,会触发IE6浏览器的怪异解析现象: 解决办法:书写文档声明. 2.不同浏览器当 ...
- ie6兼容之绝对定位元素内容为空时高度问题
正常显示: ie6下显示: line6元素高度最小16px; 解决办法: 添加内容在空的div里,并且设置行高即可. 其中,非ie6浏览器不需要再空的div里加无谓的内容,再次需要用“条件注释”来解决 ...
- IE6兼容透明JS
<!--兼容png格式图片--> <!--[]> <script type="text/javascript" src="Js/DD_bel ...
随机推荐
- iOS 和服务端交互 数据加密策略
总体逻辑: 客户端:对称加密数据,上传...回执对称解密 同理服务端:获取上传数据 对称解密 ...下发:对称加密 当且仅当登录接口和 拉新(更新nonce 和 key的接口)是对称加密上传 非对称解 ...
- velocity 使用笔记
1. velocity获取字符串长度方法: 用length()就可以了,截取子字符串用substring(0,10) .$str.substring(0,3) 集合获取集合长度用:size() 2. ...
- C++中的config设计
配置文件读写类,它要有以下这些方法: 1. 支持读入一个指定配置文件的能力 2. 支持随时加入一个配置项的能力 3. 足够强大,能够写入各种数据结构的配置信息 C++ 里,我们要存储这样的数据就使用 ...
- CAS单点登出的原理
单点登出功能跟单点登录功能是相对应的,旨在通过Cas Server的登出使所有的Cas Client都登出. Cas Server的登出是通过请求“/logout”发生的,即如果你的Cas Serve ...
- DateTable To Json
private string aaaa(DataTable dt) { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerial ...
- Spring 之自动化装配 bean 尝试
[Spring之自动化装配bean尝试] 1.添加dependencies如下所示(不是每一个都用得到 <dependencies> <dependency> <grou ...
- Linux服务器配置秘钥对连接
[root@check2 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to sa ...
- cocoa中获得root权限的几种方法
目前我所知道的,在cocoa中获得root权限的方法有3种: 1. 通过AuthorizationCopyRights函数 2. 在UI上添加一个锁的样子的控件,然后通过开关这个锁来获取root权限 ...
- NSwag在asp.net web api中的使用,基于Global.asax
https://github.com/NSwag/NSwag/wiki/OwinGlobalAsax This page explains how to use the NSwag OWIN midd ...
- c++ learning
迟到了三年的学习笔记.. 野指针:造了一个指针,不是NULL或者没有指向正经内存.比如刚造出来又不赋值,并不知道它指向了哪里 内存泄漏:造了一个指针,给他分配了空间,xxxxx,又分配了一块空间,指针 ...