Magento 2:如何以编程方式将css类添加到body标签中

时间:2016-11-16 12:49:41

标签: magento2 programmatically

我试图弄清楚如何使用Magento 2框架以编程方式将css类添加到body标记

4 个答案:

答案 0 :(得分:4)

您可以通过覆盖_prepareLayout方法从块中向主体添加类:

public function _prepareLayout(){
    $this->pageConfig->addBodyClass('my-class');
    return parent::_prepareLayout();
}

答案 1 :(得分:3)

我已经为layout_load_before创建了一个观察者,如下所示:

...
public function __construct(
    \Magento\Framework\View\Page\Config $pageConfig
) {
    $this->_pageConfig = $pageConfig;
}

public function execute(\Magento\Framework\Event\Observer $observer)
{
     $this->_pageConfig->addBodyClass('my-new-body-class');
}

答案 2 :(得分:0)

请参阅我创建的以下示例,此插件将商店代码添加到正文类:https://github.com/samgranger/StoreCodeBodyClass

将插件放在app / code / SamGranger中并运行通常的脚本来启用它(bin / magento模块:启用SamGranger_StoreCodeBodyClass + bin / magento setup:di:compile)。

答案 3 :(得分:-1)

在布局中使用以下代码以编程方式将css类或id添加到body标记

   <body>
    <attribute name="class" value="custom-body-class" />
    <attribute name="id value="custom-html-id"/>

例如 - 在布局文件夹中打开文件customer_account.xml     MagentoDir&gt;供应商&gt; magento&gt; module-customer&gt;视图&gt;前端&gt;布局

打开customer_account.xml文件后,您可以看到添加css类

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd" label="Customer My Account (All Pages)" design_abstraction="custom">
    <body>
        <attribute name="class" value="account"/>