首页 > 解决方案 > 使用 Sitecore 占位符和 SXA 列拆分器组件时如何避免重复的 divs.row?

问题描述

将 Sitecore 的占位符SXA Column-splitter<div class="row">结合使用时,会添加/渲染多个。这会在我们的布局中导致意外的边距和填充。

问题:

此外,我尝试更改 Sitecore 中的网格设置设置,但我发现的唯一选项是删除<div class="row"整个网格以及所有占位符和 SXA 组件的全局生成。这不是我想要的。

这是我用来制作占位符的代码:

@Html.Sitecore().Placeholder("SomePlaceholder")

当我在其中添加 Sitecore 的 SXA Column-splitter时,我得到了一个额外的<div class="row">(如下面的浏览器控制台屏幕截图所示)导致问题。

浏览器控制台的屏幕截图,显示带有类行的重复 div

我希望只有一个<div class="row">具有网格设置的继承边距和填充。(在我的例子中是 Bootstrap 4 网格,在 Sitecore 的网格设置中为我们的 SXA 主题分配)

标签: sitecoresitecore-sxa

解决方案


您可以通过指定要从生成行中排除的某些占位符来修补配置。

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <experienceAccelerator>
      <grid>
        <placeholderWrapper>
            <excludedPlaceholders>
                <placeholder patch:after="body-bottom">utility-links</placeholder>
                <placeholder patch:after="utility-links">login-link</placeholder>
            </excludedPlaceholders>
        </placeholderWrapper>
      </grid>
    </experienceAccelerator>
  </sitecore>
</configuration>

例如在我们使用的视图中:

@Html.Sitecore().Placeholder("utility-links")

@Html.Sitecore().Placeholder("login-link")

我们不想要新的一行。


推荐阅读