如何使用Plotly Dash的dbc.Row与dbc.Col实现目标不等宽网格布局
问题原因
你当前的写法未给dbc.Col指定固定宽度,默认会让同一行的列自动等分整行宽度,因此不同列数的行卡片宽度不一致,和预期效果不符。
修复后代码
所有列统一设置宽度为3(占12栅格的1/4,和第一行4列布局的单卡片宽度一致):
dbc.Row([ dbc.Col([content], width=3), dbc.Col([content], width=3), dbc.Col([content], width=3), dbc.Col([content], width=3) ]), dbc.Row([ dbc.Col([content], width=3), dbc.Col([content], width=3), dbc.Col([content], width=3) ]), dbc.Row([ dbc.Col([content], width=3), dbc.Col([content], width=3) ])
如果需要适配不同尺寸的设备屏幕,可使用响应式宽度配置:
# 响应式规则:超小屏占满整行,小屏占1/2宽度,中屏占1/3宽度,大屏占1/4宽度 COL_SIZE = {"xs": 12, "sm": 6, "md": 4, "lg": 3} # 可通过class_name调整列之间的间距,g-3为Bootstrap默认标准间距,数值越大间距越大 dbc.Row([ dbc.Col([content], width=COL_SIZE), dbc.Col([content], width=COL_SIZE), dbc.Col([content], width=COL_SIZE), dbc.Col([content], width=COL_SIZE) ], class_name="g-3"), dbc.Row([ dbc.Col([content], width=COL_SIZE), dbc.Col([content], width=COL_SIZE), dbc.Col([content], width=COL_SIZE) ], class_name="g-3"), dbc.Row([ dbc.Col([content], width=COL_SIZE), dbc.Col([content], width=COL_SIZE) ], class_name="g-3")
内容的提问来源于stack exchange,提问作者Napier
相关产品推荐
相关产品推荐

