You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tumblr多页面布局问题:列表页3列布局与单页/独立页冲突

解决Tumblr主题单篇/自定义页面的3列布局问题

问题根源

你的#container样式是全局生效的,不管是主页、单篇文章页还是自定义页面(比如关于页),都会被应用column-count:3的3列布局,导致非主页的页面显示异常。

解决方案

利用Tumblr的模板判断标签,区分不同页面类型,只为主页应用多列布局,其他页面恢复单列。

步骤1:给不同页面添加专属类

修改<body>标签,通过Tumblr的页面判断标签,给主页、单篇页分别添加专属类,方便针对性写样式:

<body id="{select:background}" class="{block:IndexPage}index-page{/block:IndexPage}{block:PermalinkPage}permalink-page{/block:PermalinkPage}">

步骤2:调整CSS样式

替换原来的#container、#house、.content样式,只在主页启用3列瀑布流,其他页面用单列:

#sidebar {
    top: 35%;
    position: -webkit-sticky;
    position: sticky;
    background: #ffffff;
    height: 40vh;
    width: 20%;
    text-align: center;
    padding: 25px 10px 10px 10px;
    border: 2px solid;
    border-radius: 70% 30% / 20% 40%;
    margin: 2% 2%;
}

/* 主页专属的3列瀑布流布局 */
.index-page #container {
    column-count: 3;
    column-gap: 20px;
    width: 75%;
}

/* 默认的container样式(单篇/自定义页) */
#container {
    width: 75%;
    margin: 2% 0;
}

#house {
    display: flex;
    flex-direction: row;
    justify-content: flex-start; /* 修正原right属性,让侧边栏和内容区正常并排 */
}

/* 主页帖子样式 */
.index-page .content{
    width: 100%;
    background-color: #ffffff;
    padding: 20px;
    margin-bottom: 20px;
    break-inside: avoid; /* 防止瀑布流中帖子被列拆分 */
}

/* 单篇/自定义页内容样式 */
.permalink-page .content,
.page-content {
    width: 100%;
    background-color: #ffffff;
    padding: 20px;
}

步骤3:完善页面内容结构

在#container里添加自定义页面的内容块,确保关于页的内容能正常显示:

<div id="house">
    <div id="sidebar">
        <a href="/">
            <h1>{Title}</h1>
        </a>
        <div id="description">
            {Description}
        </div>
        <br />
        <div class="sidebarlink"><a href="{text:link 1 url}">{text:link 1}</a></div>
        <div class="sidebarlink"><a href="{text:link 2 url}">{text:link 2}</a></div>
        <div class="sidebarlink"><a href="{text:link 3 url}">{text:link 3}</a></div>
        <div class="sidebarlink"><a href="{text:link 4 url}">{text:link 4}</a></div>
    </div>

    <div id="container">
        {block:Posts}
        <div class="content">
            [帖子内容]
        </div>
        {/block:Posts}
        <!-- 自定义页面(比如关于页)的内容容器 -->
        {block:Page}
        <div class="page-content">
            {PageContent}
        </div>
        {/block:Page}
    </div>
</div>

额外说明

  • 你原来的#container里写了grid-template-columns但设了display:inline-block,Grid布局属性不会生效,实际是靠column-count实现的瀑布流,所以删掉了没用的Grid相关代码。
  • break-inside: avoid是为了保证瀑布流里的每个帖子完整显示在一列,不会被拆分。

内容的提问来源于stack exchange,提问作者stephi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:21:02