2

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

4

4 回答 4

5

您可以通过覆盖方法将类从块添加到主体_prepareLayout

public function _prepareLayout(){
    $this->pageConfig->addBodyClass('my-class');
    return parent::_prepareLayout();
}
于 2016-12-16T03:48:43.077 回答
4

我创建了一个观察者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');
}
于 2017-11-23T04:34:43.210 回答
0

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

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

例如 - 在布局文件夹 MagentoDir > vendor > magento > module-customer > view > frontend >layout 中打开文件 customer_account.xml

打开 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"/>
于 2016-11-17T08:53:44.310 回答
0

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

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

于 2017-05-03T13:50:47.177 回答