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

如何减小Streamlit中st.markdown项目符号列表的行间距?

解决Streamlit多次调用st.markdown生成列表项行间距过大的问题

方法一:合并成单个st.markdown调用(推荐)

每次单独调用st.markdown('- Item X')会让每个列表项成为独立的渲染块,块之间自带默认外边距,导致间距过大。最直接的解决方式是把所有列表项放在同一个st.markdown里:

st.markdown('- Item 1\n- Item 2\n- Item 3')

如果是动态生成的列表项,可以先把内容拼接成字符串再传入:

items = ['Item 1', 'Item 2', 'Item 3']
list_str = '\n'.join([f'- {item}' for item in items])
st.markdown(list_str)

这样Streamlit会渲染成统一的无序列表,行间距是原生列表的正常样式。

方法二:用自定义CSS强制缩小间距(适合必须分开调用的场景)

如果因业务逻辑必须分开调用st.markdown,可以通过注入自定义CSS调整间距:

# 先注入CSS样式
st.markdown("""
<style>
/* 去除每个markdown块底部的默认外边距 */
.stMarkdown {
    margin-bottom: 0.1rem !important;
}
/* 微调列表项自身的上下间距 */
.stMarkdown li {
    margin-top: 0;
    margin-bottom: 0.1rem;
}
</style>
""", unsafe_allow_html=True)

# 再分别生成列表项
st.markdown('- Item 1')
st.markdown('- Item 2')
st.markdown('- Item 3')

你可以修改margin-bottom的数值,按需调整到合适的间距大小。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:41:02