点击「cell → current outputs → toggle」可最快禁用单个单元格输出自动滚动;ipywidgets.output需注入css解除高度限制;jupyterlab右键「disable scrolling」临时生效;永久关闭需修改配置或使用魔术命令,但有页面卡死风险。

点击菜单栏「Cell → Current Outputs → Toggle」最直接
这是禁用单个单元格输出自动滚动的最快方式。Jupyter Notebook 默认开启滚动,只要输出内容超过一定行数(通常约 100 行),就会套上 .output_scroll 容器并加滚动条。点一次 Toggle 就能强制展开全部内容,不截断、不滚动——注意不是 Toggle Scrolling,后者只是切换「是否允许滚动」的开关,行为不稳定;Toggle 才是真正切换「折叠/展开」状态。
常见误操作:在「Cell → All Outputs」里点 Toggle,这会作用于整个 notebook 所有已运行单元格,容易导致页面卡顿或布局错乱。建议只对当前需要查看全量输出的单元格操作。
用 CSS 强制解除 ipywidgets Output 组件高度限制
如果你用了 ipywidgets.Output,比如配合 button.on_click 动态打印日志或图表,它默认会被套上固定高度的 .output_scroll,即使内容很少也会收缩成窄条——这不是滚动问题,是 CSS 强制设了 height: 200px 和 max-height: 200px。
必须注入全局样式才能生效:
from IPython.display import display, HTML
display(HTML("""
<style>
.jupyter-widgets-output-area .output_scroll {
height: unset !important;
max-height: none !important;
overflow: visible !important;
}
.jupyter-widgets-output-area {
height: auto !important;
}
</style>
"""))
要点:
- 必须用
display(HTML(...))注入,写在 notebook 开头或 widget 创建前 -
!important不可省,否则被 Jupyter 内置样式覆盖 - 仅对后续创建的
Output实例生效,已存在的需重新运行 widget 代码
JupyterLab 里右键「Disable Scrolling」就行
JupyterLab 没有顶部菜单的 Cell 选项,但更简单:鼠标悬停在目标输出框(比如一张放大后的图或长表格)上,右键 → 选 Disable Scrolling。这个操作是临时的,刷新页面或重启 kernel 后恢复默认,适合快速截图或演示。
注意:
- 该选项只出现在输出区域右键菜单,不在代码单元格本身上
- 对 matplotlib 图形有效,但对
print()多行文本可能不出现此菜单——此时得用下一个方法 - 如果右键没反应,先确认输出框已被选中(边框高亮)
永久关闭自动滚动:改配置或加魔术命令
想一劳永逸?两种方式:
- 改配置文件:
~/.jupyter/jupyter_notebook_config.py加一行c.NotebookApp.output_area_height = 0(值为 0 表示不限高) - 临时生效:在 notebook 任意 cell 运行
%config InlineBackend.print_figure_kwargs={'bbox_inches': 'tight'},主要影响图像输出,但配合plt.show()能减少因 figure 尺寸触发的滚动
⚠️ 风险提示:全局关闭滚动后,超长输出(如 df.to_string() 百万行)会撑满整个页面,浏览器可能卡死。建议只在明确知道输出长度可控时启用。











