回复内容:
这还是技术和技巧的问题。如果认为学习兼容ie6/7就是撑握一堆css hack那没必要,css hack无非是利用css错误处理的差异绕过一些浏览器,这都是技巧,碰到一个搜一下就有答案。了解一下css错误处理有点用,重要是合理的html/css写法可以避免很多兼容性的问题,典型就是滥用float,如果是从更合理的设计html结构,运用更好的布局技术,从这个角度出发,解决兼容问题就不是撑握css hack,而是撑握一些fallback的方案,这是对的,也是有意义的。
ie6/7没了,新的兼容问题又会出现。桌面浏览器和手机浏览器的差异,低端手机浏览器不亚于ie6。前端工程师很长一段时间内都会面对兼容性问题。学会正确面对兼容性问题是有必要的。
绝对没有必要。
【更新:楼下那些说有必要的,麻烦你们切题清楚点,你们自己要兼容IE6你公司可能是为此付钱给你,但是提问者还是在校生,有人付钱让他学习兼容IE6吗?】
目前(2012年10月)IE6、IE7的市场占有率即使在最小白的市场,份额也下降到了25%以下。考虑你还是在校生,意味着你进入可以承担较为独立的工作岗位时,至少还有2年以上时间,届时IE6、7的占有率估计至少将跌至10%以下,甚至可能小于5%。这意味着届时只有很少的互联网产品才会考虑兼容,比如那些最最基础的互联网应用和网站,而这类网站、应用往往都是已经非常成熟的codebase,没你什么事。
另外,作为在校生,我不建议你现在就确定前端开发方向。前端开发的职业前景并不乐观。如果你想从事编程类工作,最好是把计算机基础打好,例如数据结构、算法、编译原理等。甚至好好学习下互联网基础协议,比如HTTP(1.1和未来2.0草案),绝对比花时间在IE6、7上有价值。
首先,有一个误区就是,一说要“兼容 IE6”,就等于让网站在 IE6 下和在现代浏览器下一模一样。
破除这个误区和强迫症,你就没什么可纠结的了。你要接受 IE6 和其他浏览器不一样,优雅降级,至少给 IE6 用户一个提示。对于新的、符合标准的技术,要敢用会用,如果在 IE6 下不支持,那就不支持好了(但是你要考虑到解决方法,而不是彻底不管)。所有 IE6 的问题,我相信都可以在标准的框架下面得到解决,不一定是完美解决(不要勉强)。
至于那些 hack 什么的奇技淫巧还是少接触为妙。当然,你在自学的时候,可以尝试任何东西,但是就怕你产生了依赖,以为那样是正常无可厚非的的(业内的一种奇怪的论调“管用就行”)。从这个角度讲,岂止是兼容 IE6 的问题,还有很多问题是需要你做选择的。比如经常遇到的元素的垂直居中、背景图的“填充”效果等有很多的近乎 hack 的技巧:div 套 div,把背景图改成 img 元素什么的。你直接 copy 代码,然后实现了这样的效果,却没有思考这样做的合理性和必要性——长此以往,你的水平也不会有本质的提高。
我觉得,在一开始,能够用 CSS 把设计意图表达清楚就不错了(很多人未必能做到),不用要求一模一样。
你在参加工作之前,没有人逼着你必须做出某种效果来否则就滚蛋,也没有整天嚷嚷着“没有什么是技术上实现不了的”的上司,那么你何苦呢?
你可以有态度,但你首先必需有能力。如果客户要求你支持ie6,ie7,你做不出却跟他谈态度?没有能力为基础的态度,就是bullshit。
jQuery支持ie6,难道是因为John Resig没有态度?如果John Resig的Javascript能力不足以支持他开发出兼容ie6的库来,他的态度再高傲,jQuery也不会像今天这样流行。现在,你们享受着jQuery的便利,却来嘲笑那些为技术做出贡献的人,John Resig的付出到底是为谁的脑残付账?
一个html和javascript工程师,如果不懂基本的兼容ie的技巧,你还是最好自己创业吧。这无关ie6,ie7的市场占有率,而是关乎学习的本质。你说你Javascript牛逼,证明给我看,别跟我扯什么态度。
用明天的技术,不要用昨天的技术——吉姆 格雷
不需要。
做技术和做产品,甚至做媒体都一样,需要有态度。
没有态度的结果是,你在用你的技术生涯,前途回报,甚至直白些说,在用你的生命为别人的脑残标准付账。
IE 6,7 甚至 8 的反人性我想不用多说了。而花时间去对应这些会付出实在的机会成本。有这个时间,还不如去深入今天最新的标准和前端框架。
你会做的更愉快,也赚的更多。更重要的,为世界带来更好的东西。
否则?
VB 或者 .Net 程序员就是你很好的前车之鉴。
好吧,我也是在校的。
虽然去兼容 IE6/7/8 的话会花掉大量的时间,但是目前在去兼容这些古老浏览器的同时,你能学到的不仅仅是一个兼容性问题的解决方案,在你解决一个兼容性问题的时候你要考虑的东西会很多,包括浏览器发展的历史,IE 特有的 hasLayout,BFC,更深入的是在你解决这个这个问题的同时你可能会去考虑,这是一个 bug 还是特性?设计者在支持这个功能的是怎样考虑的?这些都是基础,了解一下不至于花上你那么多的时间。
虽然只是解决一些兼容性的问题,但是在你解决一个问题的同时你可能得到的更多。假如一直在符合规范,支持最新特性的浏览器里做开发,因为都是最新的标准,你写的代码都能信手拈来,你写着很舒服的代码,一些本质性的东西你可能会被忽略掉。
当然也不是很虐心的每次都要去做 ie6/7/8 的兼容,但是渐进增强,平稳退化,至少要保证可访问性,这也是一个前端必须做到的吧?
目前 IE6/7 的份额还保持在 30% (不包括 360 安全浏览器之类的 IE 加壳浏览器)左右,虽然说两年之后的份额会下降很多,但是下降到可以忽略不计的时候还没有那么快。
至于说做以后只做移动端的,可以不做 IE6/7 的兼容,但是学多一点没什么坏处吧?
不同意第一名的回答,必须有必要稍微了解一下IE6浏览器兼容性的处理方法(IE7就不需要了),因为IE6至今在国内依旧是很大的一块市场份额,
http://brow.data.m.sbmmt.com/
这里有浏览器市场份额数据,可以看出,IE6至今仍然是互联网排名第2的浏览器,众多xp都是自带IE6,而至今电脑城负责装机的帅哥们都是首推xp,他们手里的xp盘又都是很老的那些番茄花园之类的ghost盘,去年我去修电脑的时候,甚至听到了一哥们说,qq我只要08版.这些人构成了互联网用户的最低层,只要你能搞定IE,你的网站就可以侵占那21%的市场,你认为多少boss会放弃呢
而主要的问题就是IE6消亡时间问题,我查看了2012年1月份的数据,市场份额是25%左右,整个市场波动图在这里看http://brow.data.m.sbmmt.com/main.php?s=brow_detail&uv=&brow=&st=2012-01-25&et=2012-10-24
我觉得之所以IE6能够下降这么快,估计还有360的功劳,但是短时间内下降的趋势已经不会很明显了,所以除非体问者是刚刚上大学的小朋友,不然我觉得至少需要去了解下兼容,其实个人认为刚上大学的同学不会这么快想到未来的方向吧,总之,如果你还有2年就毕业的话, 就了解下,不一定要精通,其实就算你想精通,也必须等到工作的时候.
如果时间还很久,我觉得还是多学点东西吧,不用局限于前端
个人以为,浏览器兼容性的问题并非IE6消失了就解决了
虽然有W3C,但是各个浏览器厂商为了凸显自己产品的特性还是各自为政。
HTML5和CSS3标准还没出来,各浏览器的实现程度都不一样,即使出来了,又会有HTML6、CSS4……,到时候可能又会有人举起呐喊“打倒IE9”
对于一些配置比较差但依然服役的PC而言,XP+IE6的性能要优于比较现代的浏览器,而随着浏览器功能的增多,对硬件的要求越高,IE9可能为了兼顾用户的硬件不回持续更新而紧跟新标准
IE6的问题不过是科技进步的副作用,对于有些做Windows程序的人而言,可能使用Win7的Win32API,同样得想办法兼容XP
回到这个问题本身,在下也是做网站的,前段后端的代码都写,就在下的经验来看,只要按着CSS本身的设计理念和机制来做,少用浮动,慎用定位(相对定位和绝对定位),熟悉盒式模型,多用流布局,其他的如文字样式、颜色、背景等都没什么兼容问题,一些修饰性的CSS3特性如渐变、阴影、高光等IE9都不支持,不用也不影响用户阅读,就不用考虑IE6了。选择器方面有些不兼容的可能需要js代替,不建议使用复杂的选择器。
至于该不该花时间去处理兼容性,应该说,各个浏览器之间都有差异,当初IE6也是非常先进的,如今受人唾弃,而如今这些现代的浏览器也都有布这后尘的一天,也许有人说浏览器都像Chrome一样后台升级不就玩了,但是软件可以升级,硬件无法升级,浏览器新特性的增加是有瓶颈的,尤其是以后大量应用直接运行在浏览器中,性能更堪忧
低版本的浏览器基本上保持一致,不影响用户阅读就可以了。重点还是熟悉CSS的运行机制和各浏览器的实现机制,多学多模仿多练,各浏览器的差异了解多了自然就没那么不淡定了,所以,技术和心态很重要。
借用古语结束:无他,唯手熟尔
学习兼容ie6和ie7没必要,你可以把做好的网站在ie6和ie7上测试下,显示没问题就行。
但是我不能同意某一个开发者所说的抵制ie6用户和ie7用户。这样的国外网站我见过,也很少,多数是想赚名声的。
如果在国内:不兼容ie6和ie7 ? 你一个网站想要挟用户升级浏览器? 那一定脑子进水了。
国内网站有哪个敢这么说?如果他能活下去再来吹这个牛吧