分类框布局与列表布局不匹配

在“类别列表”布局中,子类别会显示其彩色圆点,如果访问受限,标题前还会显示锁图标。

而在“类别框”布局中,既不会显示彩色圆点,也不会显示锁图标;但如果为子类别定义了徽标,则会显示该徽标(默认缩小至 20 像素)。

这种行为不一致。至少应提供一个选项,使子类别标题的外观与常规(列表)布局保持一致。理想情况下,还应提供选项,在列表布局中也显示徽标。

或者,甚至提供一个插件出口(plugin outlet),以便我们能够修改这种不合逻辑的行为(我一直在寻找但没找到——如果有的话,请问是什么?)

3 个赞

@vinothkannans 能否请你调查一下这个问题,并提供一些显示该问题的截图以及建议的修复方案?

2 个赞

以下是几张截图:

  1. 默认分类与精选主题

    顺便提一下,这里的 Logo 确实有点大,导致大量空间浪费——我倾向于将它们的高度调整为 75 像素。
  2. 默认区块与子分类

    请注意,其中几个子分类已设置了 Logo 图像并正常显示。
    布局非常浪费空间:分类 Logo 被限制为 40 像素,但居中显示在标题上方。子分类的 Logo 没有正确保持宽高比(–aspect-image 计算未生效,而且如果直接设置高度,只要空间足够,宽高比自然会保持,因此这些计算其实并无必要)。
    此外,子分类的 Logo 也稍显过大,导致行间距被拉大。
  3. 我的修改步骤一

    Logo 浮动在标题左侧,标题则在剩余空间中居中显示。
    子分类每行显示一个,带有彩色条纹和锁定图标,但子分类的 Logo 未显示(这与默认行为一致)。
    在区块中,如果空间允许,试图将两个简短的子分类标题挤在一行似乎并不合理;我认为每行单独显示一个标题效果更好,不过也有人可能更喜欢在子分类较多时将其压缩显示。
  4. 我的最终修改:

    子分类 Logo 以 18 像素高度显示,并在标题末尾保持正确的宽高比。这是可选的,也可以将 Logo 放置在锁定图标与文本之间,但我更倾向于让条纹和标题对齐。
    此外,在其他默认布局中启用子分类 Logo 也是合理的,但我尚未对此进行尝试。
    此处我还使用了 Category Icons 组件(仅在 Niki Test 子分类上设置了图标),因此条纹的位置略有偏移,以使图标与条纹对齐;同时图标颜色与条纹颜色一致,从而在视觉上替代了条纹——但这些是对该组件的修改,而非核心代码的改动。
  5. 最后,这是当子分类区块显示在父分类主题上方时的渲染效果(如果启用了该设置)。

    显然,目前尚无子子分类需要展示,但未来需要对此进行适配。另外,当标题特别长时,或许将 Logo 垂直浮动会更合适;不过更好的做法可能是保持分类标题简短!

综上所述,这需要结合 HTML 和 text/x-handlebars 代码(在主题的 /head 中),实际上替换了 “components/categories-boxes” 组件,并配合 SCSS 样式。我很乐意将代码发送给任何有能力测试并将其提交到 GitHub 的开发者。
这套方案在我的网站上运行良好,但可能还存在一些我尚未察觉的其他影响。

3 个赞

我明白了,等假期过后再说吧,我想听听 @awesomerobot 的意见。

5 个赞

我原计划本周查看这个布局,尝试整合第三级子分类,以便顺便检查一致性。

3 个赞

我刚刚推送了一个包含初步进展的更新。

子分类对本文主题关系不大,但它们正在开发中,将会影响此页面未来的样式——这也是我将其包含在内的原因。出于几个原因,我对这种方案并不完全满意,但布局确实棘手。

由于这些框的内容差异可能很大,我们或许需要在某个时候截断子分类,或者进行一些 JS 高度计算,以便应用 masonry 风格 的布局,让各个框不必保持相同的高度?还需要再斟酌一下。

总之,回到正题……

对于现有的单层子分类,我将类别样式切换为徽章样式,而非通用链接。我还改进了我们的宽高比计算,此前这些计算实际上并未被使用。

5 个赞

挺喜欢的,不过有几条评论:

我觉得标题上方的 Logo 占用了过多的垂直空间,而在描述过长且包含多个子分类的情况下,垂直空间非常宝贵。
既然盒子布局的优势之一就是在不滚动的情况下展示更多分类,我认为默认将 Logo 和标题并排显示会非常好。当然,通过 CSS 覆盖几乎可以实现这一点,但如果默认设置就能完美呈现那就更好了。

关于孙分类的问题,我很喜欢你的子盒子设计,但或许可以添加一个可选设置:仅显示一级子分类,并在存在更深层级时添加指示器——例如,如果存在孙分类,就在子分类标题下方用小字显示“+N 个子分类”。

另外,瀑布流布局会是理想的选择…