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

How to add css class to body tag in layout in yii2?

我想在 frontend/views/layouts/main 的 yii2 advanced 中添加 css class 到 body 标签。php 我该怎么做?

您只需将 class 添加到 body 标签

<body class="yourClass">

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

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

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

public $bodyClass;

或默认值:

public $bodyClass = 'custom-skin';

Ofc 你可以通过重新定义在任何扩展控制器中覆盖它 属性:

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

在初始化中:

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

在具体操作中:

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

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

另一种可能的解决方案是在您的视图中使用变量 $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'] 时才显示 class。

此外,您可以使用任何您想要的名称来代替 bodyClass

这个例子会输出<body class="yourclass">

干杯。