第2章{ 2-7 加载模块css文件 }

加载模块css文件

 kissy 除了加载模块js文件,还可以加载模块css文件。

一般我们都是在头部静态引用一个css文件:

<link rel="stylesheet" href="http://cdn.staticfile.org/twitter-bootstrap/3.2.0/css/bootstrap.css.map"/>

在kissy中我们可以在业务js模块 require css样式文件。

配置一个 bee-demo 包:

KISSY.config({
    packages: [
        {
            name: 'bee-demo',
            base: 'http://demo.apebook.org/bee-demo/build',
            ignorePackageNameInUri: true
        }
    ]}
);

业务模块中动态加载css模块文件:

KISSY.add('bee-demo/test',function(S ,require, exports, module){
    require('bee-demo/index.css');
})

当 KISSY.use('bee-demo/test'); 执行业务模块逻辑时,会去加载http://demo.apebook.org/bee-demo/build/index-min.css 文件。

动态加载css文件有个缺陷:如果结构已经先出来了,由于加载css文件需要时间,会导致这段结构缺失样式,导致页面加载初期会有变化,造成用户体验问题。

importStyle 的使用

importStyle可以帮助你阻塞地加载所有依赖的样式,这样我们就可以在head部分优先加载样式,就不会出现上文提到的样式变化问题。

需要使用 import-style 模块:

<script src="http://g.tbcdn.cn/kissy/k/1.4.8/??seed-min.js,import-style-min.js"></script>

PS:?? 是combo通配符,后面一节会说明

<head>
    <!-- 引入seed和import-style -->
    <script src="http://g.tbcdn.cn/kissy/k/1.4.8/??seed-min.js,import-style-min.js"></script>
    <!-- 配置模块 -->
    <script>
    KISSY.config({
        packages: [
            {
                name: 'bee-demo',
                base: 'http://demo.apebook.org/bee-demo/build',
                ignorePackageNameInUri: true
            }
        ]}
    );
    </script>
    <!--引入样式-->
    <script>
        KISSY.importStyle('bee-demo/index.css');
    </script>
</head>

KISSY.importStyle() 加载模块css文件。

模块css的模块名最好加上.css后缀,不然如果同时存在index.js和index.css时,KISSY.importStyle('bee-demo/index') 会优先加载js文件。       

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>加载模块css文件</title>
    <script src="//g.alicdn.com/kissy/k/1.4.7/seed-min.js" charset="utf-8"></script>
    <link rel="stylesheet" href="http://cdn.staticfile.org/twitter-bootstrap/3.2.0/css/bootstrap.css.map"/>
</head>
<body>
<header></header>
<article></article>
<script>
    KISSY.config({
        packages: [
            {
                name: 'bee-demo',
                base: 'http://apebook.org/bee-demo/build',
                ignorePackageNameInUri: true
            }
        ]}
    );


    KISSY.add('bee-demo/test',function(S ,require, exports, module){
        require('bee-demo/index.css');
    });
    KISSY.use('bee-demo/test');
</script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值