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

如何移除Streamlit应用标题上方的多余空白?

嘿,这个问题我之前折腾Streamlit的时候也碰到过!默认布局确实会在地址栏和标题之间留一块挺显眼的空白,不过有几个实用的办法能解决它:

方法1:注入自定义CSS(最推荐)

这是最灵活且稳定的方式,通过自定义CSS来覆盖Streamlit默认的样式。直接在你的代码开头加上这段:

import streamlit as st

# 移除顶部空白的自定义样式
st.markdown("""
    <style>
        /* 调整页面主体的顶部内边距 */
        .css-18e3th9 {
            padding-top: 0rem;
            padding-bottom: 0rem;
        }
        /* 调整侧边栏和主内容区的内边距 */
        .css-1d391kg {
            padding-top: 0rem;
        }
        /* 可选:隐藏默认的Streamlit菜单和页脚,让布局更干净 */
        #MainMenu {visibility: hidden;}
        footer {visibility: hidden;}
    </style>
""", unsafe_allow_html=True)

# 你的应用标题
st.title("我的Streamlit应用")

注意:Streamlit的CSS类名可能会随版本更新变化,如果上面的类名不生效,按F12打开浏览器开发者工具,找到顶部空白对应的元素,替换掉对应的类名就行。

方法2:直接调整标题的边距

如果不想全局改样式,也可以单独给标题设置负边距来拉近和顶部的距离:

import streamlit as st

# 自定义标题,通过margin-top减少顶部空白
st.markdown("<h1 style='margin-top: -40px;'>我的Streamlit应用</h1>", unsafe_allow_html=True)

这个方法简单但不够灵活,不同屏幕尺寸下可能效果不一致,适合快速测试。

小提示

如果用了st.set_page_config,可以搭配layout="wide"选项,再结合上面的CSS,能让布局更紧凑:

st.set_page_config(page_title="我的应用", layout="wide")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:28:13