CSS优化

1:避免使用@import,外部的CSS文件中使用@import会使得页面在加载时增加额外的延迟。
     一个CSS文件a.css包含了以下内容:@import url(“b.css”)。浏览器先把a.css下载、解析和执行后,发现及处理第二个文件b.css。简单的 解决方法是使用<link>标记来替代@import,并行下载CSS文件,从而加快页面加载速度。

2:避免AlphaImageLoader滤镜,IE独有属性,用于修正7.0以下版本中显示PNG图片的半透明效果。

     浏览器加载图片时它会终止内容的呈现并且冻结浏览器,在每一个元素(不仅仅是图片)它都会运算一次,增加了内存开支。
     解决方案:1):PNG8格式来代替,这种格式能在IE中很好地工作。
                       2):确实需要使用AlphaImageLoader,使用下划线_filter,使IE7以上版本的用户无效。


3:避免CSS表达式。
     例:background-color: expression((new Date()).getHours()%2?"#FFFFFF": "#000000" );
     CSS表达式是动态设置CSS属性的强大(但危险)方法。Internet Explorer从第5个版本开始支持CSS表达式。
     在页面显示和缩放、滚动、移动鼠标时都会要 重新计算一次。给CSS表达式增加一个计数器可以跟踪表达式的计算频率。在页面中要计算成千上万次并且可能会对页面的性能产生影 响。


4:避免通配选择器
     例:#main > a {color: red;}
         CSS选择器是从右到左进行规则匹配。所以在浏览器中这条语句实现为:
         浏览器遍历页面中所有的a元素——>其父元素的id是否为main。
     例:#main  a {color: red;}
         这个例子比上一个消耗的时间更多
         遍历页面中所有a元素——>向其上级遍历直到根节点
     例:.test * {color: red;}
         匹配文档中所有的元素——>分别向上逐级匹配class为test的元素,直到文档的根节点
         所以我们应该避免使用通配选择器。
 

5:移除无匹配的样式
     一:删除无用的样式后可以缩减样式文件的体积,加快资源下载速度;
     二:对于浏览器而言,所有的样式规则的都会被解析后索引起来,即使是当前页面无匹配的规则。移除无匹配的规则,减少索引项,加快浏览器查找速度;


6:避免单规则的属性选择器
     浏览器匹配所有的元素——>检查是否有href属性并且herf属性值等于”#index”——>分别向上逐级匹配class为selected的元素,直到文档的根节点。

7:避免类正则的属性选择器
     正则表达式匹配会比基于类别的匹配会慢很多。大部分情况下我们应尽量避免使用 *=, |=, ^=, $=, 和 ~=语法的属性选择器。

Tips:

    !important的样式直接覆盖了正常生成的样式规则,然后如果解析到后面还有!important规则时,再和以前的important规则比较优先级。就是说,使用!important的CSS规则是为了最高优先级,然后最高优先级中去判断应用那个样式。    对于性能并没有什么负面影响,但是从可维护性角度考虑还是少用这个规则。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值