登录论坛 | 注册会员 设为首页 | 收藏本站
当前位置 : 首页>软件学院>程序开发>CSS>正文
 
关于CSS HACK 解决兼容的写法

http://www.dbit.cn 2010-5-31 7:45:15  来源:东北IT网  编辑:叶子
 

人一旦习惯了某些东西就很难去改,以及各种各样的原因,新的浏览器越来越多,而老的总淘汰不了。增长总是快于消亡导致了浏览器兼容是成了谈不完的话题。说到浏览器兼容,CSS HACK自然而然地被我们想起。今天,我们通常都有一个团队或者将有一个团队的人在一个公司里面做相同的事,需要我们有统一的规范来进行Coding,以方便维护。而解决兼容的方法就是(必须是,因为这才最容易有问题的)其中一个最重要的、要解决的规范之一。


在解决兼容方法上,想定出一个统一的规范,个人认为应该以下面3点为基本原则:



  1. 权衡成本:在浏览器被淘汰后,如何快速清理掉无用代码
  2. 可维护:在资源成本和完美间平衡的向后兼容
  3. 可读:省力、易记

这里把成本放在了第一位,并不是说我们不愿意追求完美,而只是,太刻意追求完美有时候可能会阻碍我们前进;在成本后,应该是可维护和可读,这点对于团队的合作来说至关重要,而最终结果也是为了减少成本。


先把这三个原则存起来,来看看我们平时解决兼容的写法(后面会附详细的Hack方法列表):


一、CSS 选择器 Hack


 /* Opera */
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0)
{head~body .sofish{display:block;}}


这种写法的优缺点是:



  • 优点:全面,各种HACK都有;清理无用代码里易认
  • 缺点:选择器名称不易记;代码量多(要重复写选择器)

二、CSS 属性 Hack


  .sofish{
         padding:10px;
         padding:9px\9; /* all ie */
         padding:8px\0; /* ie8-9 */
         *padding:5px; /* ie6-7 */
        +padding:7px; /* ie7 */
         _padding:6px; /* ie6 */
}


这种写法的优缺点是:



  • 优点:易记,代码少
  • 缺点:不全面
  • 三、IE 注释

    IE only

    这种写法的优缺点是:

    • 优点:安全;向后兼容好;易维护
    • 缺点:用不好会增加HTTP请求;用得好代码又多

    四、浏览器探测:JS/后端程序判断

    // 以jQuery为例,检测是否是IE6,是则加上class="ie6"
    if ($.browser.msie && $.browser.version = 6 ){
    $('div').addClass('ie6');
    }

    这种写法的优缺点是:

    • 优点:全面;易维护;可读性高
    • 缺点:占资源;代码量大(要重写选择器)

    上面4种是我们最常用的方法。现在,让我们抽出心里存着的那3个原则,看看如何选择。要时间思考一下么?这里简单地说一下我的选择:

    1、尽量使用单独HACK

    这样维护起来成本比较低,改动不会影响其他的浏览器,而一旦有浏览器淘汰,只要搜索关键字,就可以批量去掉这些代码。比如,ie6的单独hack:

    _padding:6px;;

    2、向后兼容的目标:1年

    你想现在的网站兼容IE10么,谁不想,但这可预见性太低了,也可以说,成本太高了。暂时没必要。不过,IE9可能要发布了,所以,选择像

    padding:8px\0;

    这样的IE8+的hack,在删掉其他代码不影响向后兼容上,会更好;并且,如果IE10出来,一旦支持这个hack,而又没有这个bug,可能删掉只影响2个浏览器,也会更方便;

    3、尽可能省资源

    你要是不考虑页面加载速度,不考虑服务器承受能力的话,那在向后兼容和淘汰的处理上可以做得很完美(从代码上),但这从某种程度上,不如不做。

  • 五、个人推荐写法

    其实可以纠结的还真多,这里结合A-Grade浏览器的种类和HACK的种类,写两种个人认为比较合理的HACK和向后兼容相兼顾的写法,仅供大家参考的。

    本新闻共3页,当前在第1页  1  2  3  

 
收藏】【打印】【进入论坛
  相关文章:

·CSS3 Media Queries 详解
·CSS实例教程:非浮动区域设置宽度
·css的效率和浏览器渲染的速度
·小议使用“完整”的CSS的缺点
·关于CSS不透明的详细介绍 
·CSS中设置段落间距的方法
·用css网站布局之十步实录
·DIV+CSS布局代码精简对SEO的影响 
·CSS教程:网页中英文字体的设置 
·css3文本阴影属性text-shadow说明 
·css3阴影属性box-shadow注意事项 

 
 
 
 
最新文章

中关村艳照门女主角详记录高清组图 
大连护士门大尺度艳照高清组图
iPhone女孩微博爆红 最宝贵东西换iPhon
反恐精英之父内维尔:改变电脑游戏销售
团购网站黎明之前:中国市场惨烈厮杀不
团购鼻祖Groupon中国揭秘:快与慢的商业
Spil Games发布新的品牌形象
1800配置一台主机 不要显示器
联想V360笔记本模特写真
爱国者第四代移动硬盘将面市、低电压保

 
推荐文章
1
2
3
4
5
6
7
8
9
10
iPhone女孩微博爆红 最宝贵东西换
大连护士门大尺度艳照高清组图
中关村艳照门女主角详记录高清组
苹果员工中毒门
宫如敏不雅照疯传 看张馨予韩一菲
深耕市场 永续经营——专访百脑汇
优派专业电子书 让您回家旅途多姿
揭晓百万大奖三星bada魅力绽放中
大明龙权“江湖英雄会”全国PK大
永恒之塔校园达人挑战赛完美落幕
八卦图解 More>>
iPhone女孩微博爆红 最宝贵东西换 大连护士门大尺度艳照高清组图
中关村艳照门女主角详记录高清组 宫如敏不雅照疯传 看张馨予韩一菲