Dash-为仪表板应用程序设置导航栏

时间:2018-09-25 14:20:52

标签: python-3.x plotly plotly-dash

我正在使用Python Dash构建仪表板。我正在使用CSS的 Materialize.css 框架。我想创建一个导航栏,该栏必须在移动设备,台式机等任何设备上显示。我指的是这个网站Extended Nav Bar with Tabs。如何使网页更具响应性?

示例代码发布在这里

 layout = html.Div(id='main-page-content',children=[

    #nav wrapper starts here
    html.Div(
        children=[
            #nav bar
            html.Nav(
                #inside div
                html.Div(
                    children=[
                        html.A(
                            'Dashboard Analytics',
                            className='brand-logo',
                            href='/'
                        ),
                        #ul list components
                        html.Ul(
                            children=[
                               html.Li(html.A('Configuration', href='/apps/config')),
                               html.Li(html.A('Segmentation', href='/apps/segmentation')),
                               html.Li(html.A('Main Page', href='/apps/users')), 
                            ],
                            id='nav-mobile',
                            className='right hide-on-med-and-down'
                        ), 
                    ],
                    className='nav-wrapper'
                ),style={'background-color':'#008EFE'}),

        ],
        className='navbar-fixed'
    ),
])

#define the external urls
external_css = ['https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/css/materialize.min.css']

for css in external_css:
    app.css.append_css({'external_url': css})

external_js = ['https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js']

for js in external_js:
  app.scripts.append_script({'external_url': js})

当我在手机上查看网页时,选项必须显示在侧面导航中。因此,我可以浏览不同的页面,而无需实际返回移动设备。

1 个答案:

答案 0 :(得分:0)

在您提供的链接中,该示例包含以下元素,该元素在您的布局中缺失:

<a href="#" data-target="mobile-demo" class="sidenav-trigger"><i class="material-icons">menu</i></a>

这是在移动设备上打开菜单的按钮。具体来说,data-target属性是必不可少的,因为它会触发单击事件。

不幸的是,当前在Dash中没有简单的方法将此属性添加到HTML元素(请参见this thread)。

此外,您忘记为nav元素赋予类名'nav-extended',但是我不知道这有多么重要。