如何在yii2中的布局中添加css类到body标签?

时间:2017-01-23 08:01:54

标签: yii2 yii2-advanced-app

我想在前端/ views / layouts / main.php的yii2高级中添加css类到body标签我该怎么办?

3 个答案:

答案 0 :(得分:4)

您可以像这样动态执行此操作:

<body class="<?= $this->context->bodyClass; ?>">

在主Controller(所有其他控制器应扩展此Controller)定义属性:

public $bodyClass;

或默认值:

public $bodyClass = 'custom-skin';

Ofc你可以通过重新定义来覆盖任何扩展控制器中的这个属性:

public $bodyClass = 'custom-skin-2';

在init中:

public function init() {
    parent::init();
    $this->bodyClass = 'custom-skin-2';
}

具体行动:

public function actionView()
{
    $this->bodyClass = 'custom-skin-3';

    return $this->render('view');
}

答案 1 :(得分:1)

您只需将课程添加到正文标记

即可
<body class="yourClass">

答案 2 :(得分:1)

另一种可能的解决方案是在视图中使用变量$params

示例

您可以定义:

$this->params['bodyClass'] = 'yourclass';

然后,在布局文件中,您将进入:

[.. head and other codes ..]

<body <? if(isset($this->params['bodyClass'])) echo 'class="' . $this->params['bodyClass'] . '"'; ?>>
<?php $this->beginBody() ?>

[.. rest of your code  ..]

注意

我建议您使用if,这样仅当在您的视图中设置了$ params ['bodyClass']时才放置该类。

此外,您可以使用所需的任何名称代替 bodyClass

此示例将输出<body class="yourclass">

干杯。