Dash中如何将导航栏内的Dropdown菜单组件移动到行右侧
解决方案
你遇到的对齐失效问题是手动设置列偏移的方式受容器宽度约束大,无法稳定适配不同屏幕尺寸,改用Bootstrap内置的自动边距类即可快速实现右对齐,修改步骤如下:
- 删除下拉菜单所在列的
offset配置,不需要手动计算偏移量 - 给下拉菜单所在的
dbc.Col添加className="ms-auto"属性,该属性会自动填充列左侧的剩余空间,将列推到行最右侧 - 可选:给
dbc.DropdownMenu添加align_end=True参数,避免下拉菜单展开时超出页面右边界
修改后的代码示例:
navbar = dbc.Navbar( [ html.A( dbc.Row( [ dbc.Col([self.imageLoader(list_of_images[0])],width={'size': 1},style={ "margin-top":"4px"}), dbc.Col([dbc.NavbarBrand(id="NavbarbrandID",children=[""],style={"font-weight": "500"}, className="ml-2")],width={'size': 1},style={ "margin-top":"4px" }), # 仅修改了当前列的配置 dbc.Col([ dbc.DropdownMenu(children=[ dbc.DropdownMenuItem("Dark", href="#"), dbc.DropdownMenuItem("Light", href="#"), ],label="Themes", align_end=True # 可选,下拉菜单右对齐 ), ], width={'size': 2}, style={"margin-top":"4px"}, align="center", className="ms-auto" # 核心配置:自动左margin实现右对齐 ) ],align='center',no_gutters=True ), ), ], id="navbarID", color="primary", dark=True, )
内容的提问来源于stack exchange,提问作者Balázs Patai
相关产品推荐
相关产品推荐

