如何覆盖 html 元素但保留块的其余部分?

How to overwrite a html-element but keep the rest of a block?

我正在扩展我想要替换行的树枝模板

<div class="container">

<div class="container-fluid">

Twig-模板

{% block layout_main_navigation %}
    <div class="main-navigation"
         id="mainNavigation"
         data-flyout-menu="true">
        {% block layout_main_navigation_navbar %}
            <div class="container"> <!-- This line should be replaced -->
                {% block layout_main_navigation_menu %}
                    ...
                {% endblock %}
            ...
        {% endblock %}
        ...
{% endblock %}

我试图通过复制所有内容并更改 div 的 class 来覆盖 layout_main_navigation。但我对该解决方案不满意,因为我必须复制和覆盖很多块。

如何替换 div 的 class 并覆盖尽可能少的块?

您可以覆盖块 layout_main_navigation_navbar,添加具有所需 class container-fluiddiv 元素,然后包含块的原始内容 layout_main_navigation_menu 使用 parent() 函数:

{% block layout_main_navigation_navbar %}
    <div class="container-fluid">
        {% block layout_main_navigation_menu %}
            {{ parent() }}
        {% endblock %}
    </div>
{% endblock %}