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

如何实现1个div屏幕居中、1个div居右固定的博客文章页布局

博客布局实现方案

以下是两种兼容现代浏览器的常用实现方案,可根据需求选择:

方案一:Flex + Sticky 定位(适配性最优)

适合主内容和侧边栏都在页面居中容器内的场景,侧边栏滚动时跟随页面移动

  • HTML 结构示例
<div class="page-container">
  <main class="main-content">
    <!-- 此处放博客文章主内容 -->
  </main>
  <aside class="sidebar">
    <!-- 此处放侧边栏内容,比如目录、作者信息、推荐阅读等 -->
  </aside>
</div>
  • CSS 代码
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.page-container {
  display: flex;
  max-width: 1200px; /* 页面整体最大宽度可自行调整 */
  margin: 0 auto;
  gap: 32px; /* 主内容和侧边栏的间距可自行调整 */
  padding: 40px 24px;
}

.main-content {
  flex: 1;
  min-width: 0;
  max-width: 800px; /* 符合阅读体验的主内容宽度一般为600-800px */
}

.sidebar {
  width: 300px; /* 侧边栏固定宽度可自行调整 */
  position: sticky;
  top: 40px; /* 和父容器padding-top保持一致即可 */
  align-self: flex-start; /* 避免侧边栏被拉伸到和主内容同高 */
  height: fit-content;
}

方案二:Fixed 定位(侧边栏贴视口右侧)

适合需要侧边栏完全固定在视口右侧,不受居中容器限制的场景

  • 直接调整CSS即可,HTML结构和方案一一致,也可以单独拆分主内容和侧边栏
.main-content {
  max-width: 800px;
  margin: 40px auto;
  padding: 0 24px;
}

.sidebar {
  position: fixed;
  top: 40px;
  right: calc((100vw - 800px)/2 - 332px); /* 计算逻辑:视口宽度减去主内容宽度的一半,再减去侧边栏宽度+间距,可根据实际数值调整 */
  width: 300px;
  height: calc(100vh - 80px);
  overflow-y: auto; /* 侧边栏内容过多时可内部滚动 */
}

/* 小屏适配,宽度不足时侧边栏调整到主内容下方 */
@media (max-width: 1200px) {
  .sidebar {
    position: static;
    width: 100%;
    max-width: 800px;
    margin: 0 auto 40px;
    padding: 0 24px;
  }
}

以上两种方案的所有宽度、边距、间距数值都可以根据你的设计需求自行调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:42:00