小程府 2016-04-12 18:41:09 3895次浏览 1条评论 3 0 0

新接触yii,对yii的样式如何在页面中引用,产生了疑问,通过几个帖子得知了assets这个神奇的东西,如果你也遇到了这样的疑问,以前台为例,请看如下代码:
这是目录结构

frontend/                  前台目录
    assets/                资源控制器
            配置文件
    config/             包含应用配置及其它配置

AppAsset.php具体内容如下:

<?php

  namespace frontend\assets;

  use yii\web\AssetBundle;

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/font-awesome/css/font-awesome.min.css',
        'css/site.css',
    ];
    public $js = [
        'js/site.js',
    ];
    public $depends = [//依赖
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
        'yii\bootstrap\BootstrapPluginAsset',
    ];
     
    //定义按需加载css方法,加载js是同样的方法
    public static function addColorCss($view, $cssfile) {
          $view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'frontend\assets\AppAsset']);
    }
}

在要加载非全局样式的模板中,开头加上如下代码:

<?php
use frontend\assets\AppAsset;

AppAsset::addColorCss($this,'@web/css/color.css');//第二个参数是写的css文件路径

?>

这样就完成了,但是如果页面中有好多需要加载的样式呢,还要到资源控制器中定义方法吗?我使用如下方法,在color.css中引入

@import url("b.css");

就可以加载多个样式了!自己也试一下吧!

如果想具体了解一下assets,和调用全局样式,请参考以下两个教程:
http://www.yiichina.com/tutorial/387
http://www.yiichina.com/tutorial/399
同时,谢谢二位的教程贴!

  • 评论于 2017-03-07 14:53 举报

    如果我想在视图里面单独引入一个css文件,并把它放到所有css文件的最前面,也就是第一个位置,应该怎么做?

您需要登录后才可以评论。登录 | 立即注册