CSS 样式异步加载
2016-06-23 08:39
726 查看
1.方法1,使用link标签的media属性(注:测试只有高版本的Google浏览器可以,FF,IE都失败)
触发异步样式下载的诀窍是使用一个 <link> 元素,并 为media 属性设置一个不可用的值 (我用的是 media=”none”, 不过其它的任何值也是可以的)。当一个媒体查询的结果值计算出来是 false 的时候,浏览器仍然会下载样式表,但是不会在渲染页面之前等待样式表的资源可用。
使用实例:
2.方法2.延迟添加link标签到页面,这种方式比较兼容
可以使用同样原理,延迟加载JS
触发异步样式下载的诀窍是使用一个 <link> 元素,并 为media 属性设置一个不可用的值 (我用的是 media=”none”, 不过其它的任何值也是可以的)。当一个媒体查询的结果值计算出来是 false 的时候,浏览器仍然会下载样式表,但是不会在渲染页面之前等待样式表的资源可用。
<link rel="stylesheet" href="css.css" media="none">样式表一下载好,media 属性就必须被设置一个可用的值,以便样式规则能被应用到 html 文档中onload 事件就可以用来将 media 属性切换到all:
<link rel="stylesheet" href="css.css" media="none" onload="if(media!='all')media='all'">
使用实例:
<link href="~/Content/font1.css" rel="stylesheet" media="none" id="fontLink" />
$('#fontLink').load(function () { $(this).attr('media', 'all'); //地址,数据解析 handleUrlData(); });
2.方法2.延迟添加link标签到页面,这种方式比较兼容
可以使用同样原理,延迟加载JS
$(window).load(function () { //异步延迟加载样式 var link = $('<link />'); link.attr('href', '/Content/font1.css'); link.attr('rel', 'stylesheet'); link.appendTo($('head')); link.load(function () { console.info('加载成功...'); }); });
相关文章推荐
- 外部JS文件调用外部的Css文件
- 值和单位
- Table在DIV中以滚动条方式显示
- 清除浮动——clearfix
- 如何把Button按钮样式换成ImageButton?
- 简单重写类型为radio的input元素样式
- 用CSS设置当鼠标移动到图片内时显示文字
- 使用CSS3滤镜让图片反转颜色
- JQ 特效下拉列表 写出与css一样的效果
- CSS外部样式表+伪选择器
- css居中方法详解
- body css样式中 设置宽度和背景色
- body css样式中 设置宽度和背景色
- body css样式中 设置宽度和背景色
- body css样式中 设置宽度和背景色
- body css样式中 设置宽度和背景色
- body css样式中 设置宽度和背景色
- body css样式中 设置宽度和背景色
- body css样式中 设置宽度和背景色
- body css样式中 设置宽度和背景色