css中!important会不会对页面访问速度有影响?

技术文摘
0 420
admin
凯特云(xukai) 5 2021/1/29 17:05:54
编辑此贴 收藏

描述:目前正在进行框架样式重构,发现用!important来重写花费时间在可控范围之内,那么问题来了,大量使用!important会对页面解析速度有影响吗?


百度&google了一大堆资料,发现浏览器对于html的解析大致是这样的:

if (aIsImportant) {
    if (!HasImportantBit(aPropID))
      changed = PR_TRUE;
    SetImportantBit(aPropID);
  } else {
    // ...


并有专业人士给出了以下解释:

/**
     * Transfer the state for |aPropID| (which may be a shorthand)
     * from |aFromBlock| to this block.  The property being transferred
     * is !important if |aIsImportant| is true, and should replace an
     * existing !important property regardless of its own importance
     * if |aOverrideImportant| is true.
     * 
     * ...
     */

从上面可以看出,firefox对于!important规则的判断很简单:将包含!important的样式直接覆盖了正常生成的样式规则,然后如果解析到后面还有!important规则时,再和以前的important规则比较优先级。就是说,使用!important的CSS规则是置为了最高优先级,然后最高优先级中去判断应用那个样式。

    

      结论就是,使用!important对于性能并没有什么负面影响。但是从可维护性角度考虑还是少用这个规则。不过这个规则在IE6中有bug(IE6 IE7(Q) IE8(Q) 不完全支持 !important 规则),使用的时候还要注意。

个人签名:己所不欲勿施于人

回帖
  • 消灭零回复
本周热议
html+css+jquery 实现超帅留言墙效果!超帅,不喜勿喷!附完整demo 6
c#如何集成控制Led屏,实现数据发送自动开机、关机等操作! 3
关于站点启用HTTPS访问的通知 1
非法访问资源ip地址公布 1
不用写一句sql的ORM框架,支持多种数据库 1
c# winform 身份证信息读取 0
c#如何获取电脑mac地址,超简单! 0
批量检测指定ip某些端口是否开启,用来做什么自己想吧!!! 0
c# 实现文件下载功能,带下载进度条,可用到软件的自动更新中 0
winform程序如何做到开机自动启动 0
热门资讯
【每日一习话】把事业放在心上 把责任扛在肩上 204 
看图猜成语:明明很简单,是不是大意了 196 
第一观察 | 从两会“如期”召开看百年大党的执政能力 174 
《奇葩说》第七季总决赛,肖骁用不是自己风格的夺冠后,获得表扬 163 
联播+ | 谋定而动 习近平引领京津冀携手下好“一盘棋” 158 
玖月奇迹王小玮近照曝光!穿紧身裤秀出小鸟腿,皮肤白到发光 157 
强力堆料,几乎没有短板、铭瑄iCraft B550M电竞之心主板评测 155 
美媒承认搞错了,但已经来不及了 153 
成人体验馆被封,客人一天点3个娃娃:男人的孤独,谁能懂? 152 
广东一男子离职索赔270万,公司:你月薪才25万 149 
美日共同发表"对中国措辞最强硬"声明 外交部撂重话 143 
王霜首次回应结束留洋原因:不因贾秀全 只因这3个字 143 
扒女明星每日穿搭,千元Coach这样搭,千元CHANEL这样买! 138 
“波塞冬”无法拦截?俄军事专家:只能在发射前攻击它的母艇 103 
孙一宁明明哪也没露,却让人浮想联翩!难怪王思聪放下身段追四年 88