根据 Spartacus 中的页面插槽更改 PageTemplate 样式

Change PageTemplate style depending on the page slot in Spartacus

嗨,斯巴达克斯专家,

我通过 Impex 创建了一个名为 xyz 的页面模板,在前端 cx-page-layout 元素将接收 class xyz,但我如何添加额外的 classes 这个 cx-page-layout 元素?我将模板用于 2 个案例(每个案例使用不同的 cx-page-slot 并且将不同的 CSS 样式应用到 cx-page-layoutxyz class 会很棒取决于所应用的情况。

重要的是要说明样式应该应用于 CSS 中的 PageTemplate,而不是插槽。

将 classes 应用于 css 中的页面模板 class 会更好吗?将 classes 添加到动态呈现的 <cx-page-layout> 元素似乎不是一个好主意,并且您已经有一个 class 可用作通过继承修改页面模板样式的方法。

根据您使用的 if/which 预处理器,这里有几种继承属性的方法:Can a CSS class inherit one or more other classes?

我解决原问题的办法纯粹是靠CSS。因为这只是一个定位问题:我添加了 display: flex 所以我可以将 align-items: center 应用到名为 EmptyCartCenterContentcx-page-slot,而其他 cx-page-slot 不受影响通过它。

.CartPageTemplate{
  margin: 0;
  display: flex;
  height: 100%;
  padding: map_get($spacers, 6) 0 0 0;
  max-width: none;

  .EmptyCartCenterContent {
    align-items: center;
  }
}