当前位置: 首页 > news >正文

继续探究HTML与CSS:@import CSS影响网页性能 (转)

摘自:http://in3040.blog.163.com/blog/static/11670244320107158420566/

今天着手检查一个问题,刚换的网页导航速度很慢,点一下要停两秒钟才有所反应,显示CPU占用率当时达到100%。

怀疑是生成的页面太大,影响速度,于是将页面引用的用@import合并的一个总CSS换成实际需要的几个小CSS,结果的确提高了响应速度。在网上一查,发现原因:

原文地址:http://www.chinaz.com/Design/Rules/041C2R42009.html

CSS技巧:import与link的具体区别

我们知道在网页中引用外部CSS有两种方式,即:@import与link,我们也经常听到有人说要使用link来引入CSS更好,但是你知道为什么吗?

link

link就是把外部CSS与网页连接起来,具体形式

@import

import文字上与link的区别就是它可以把在一个CSS文件中引入其它几个CSS文件,具体形式

 

为什么使用@import

大部分使用@import方式的人是因为旧的浏览器是不支持@import方式的,这意味着我们可以使用@import来引入只让现代浏览器解析的CSS样式.

使用以下代码可以使IE6及以下的浏览器无法解析该CSS(IE6以下的属于年久失修在这里略去方法)

@import url(../style.css) screen;另一个主要的原因就是当你的网页需要引入几个外部CSS文件时.你可以使用link引入一个CSS,然后在这个CSS文件中用@import方式引入其它几个CSS文件.这样看起来更容易管理.

为什么使用link

使用link方式一个最主要的原因就是你可以让用户切换CSS样式.现代浏览器如Firefox,Opera,Safari都支持rel=”alternate stylesheet”属性(即可在浏览器上选择不同的风格),当然你还可以使用Javascript使得IE也支持用户更换样式.

如不明白,请进入这个页面,然后在Firefox中点击”查看-页面风格”.

@import的小毛病

如果你网页head标签里面十分简单,只有@import属性的话,当用户浏览的网速较慢时,他会看到一个没有风格样式的页面,然后随着CSS文件被下载完成才可以看到应有的风格.要避免这样的问题,你需要确保head里至少有一个script或是link标签.

04-11更新: @import会使得CSS整体载入时间变长.并且在IE中会导致文件下载次序被更改,例如放置在@import后面的script文件会在CSS之前被下载.

详情请参考:http://www.stevesouders.com/blog/2009/04/09/dont-use-import/

到底要用那种方式

就目前看来小型的网站还是使用link比较合适(或者说比较流行),当然如果将来我们需要把CSS进行模块化管理也肯定要用到@import.

相关文章:

  • TABLESPACE 扩展,SYNONYM,EXP/IMP,EXPDP/IMPDP,ORA-39006,ORA-39213
  • hrbeu 哈工程 Minimum time
  • 每天一个linux命令(13):less 命令
  • Ant基础知识
  • sed一次变量替换
  • 传统企业站SEO构思浅析
  • WORD中插入的公式与文字对不齐——公式比文字高——文字比公式低
  • 《Two Dozen Short Lessons in Haskell》学习(四)
  • 兰亭集势笔试题
  • netty vs mina netty和mina的区别
  • 便签
  • vcenter Converter 转换linux服务器报错
  • LINQ to SQL 建立实体类
  • WinCE6.0下在Static Text控件中显示JPG图片
  • no x11 display variable was set but this progra...
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Android 架构优化~MVP 架构改造
  • docker python 配置
  • iOS编译提示和导航提示
  • Koa2 之文件上传下载
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • mac修复ab及siege安装
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Nodejs和JavaWeb协助开发
  • react-native 安卓真机环境搭建
  • React系列之 Redux 架构模式
  • Vue 动态创建 component
  • 从零开始学习部署
  • 分布式事物理论与实践
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 前端学习笔记之观察者模式
  • 算法---两个栈实现一个队列
  • 树莓派用上kodexplorer也能玩成私有网盘
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (1)(1.13) SiK无线电高级配置(六)
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)fgets与fputs函数详解
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (TOJ2804)Even? Odd?
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (十一)c52学习之旅-动态数码管
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .NET 5种线程安全集合
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET Micro Framework初体验(二)
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .net中生成excel后调整宽度
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)