我正在使用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})
当我在手机上查看网页时,选项必须显示在侧面导航中。因此,我可以浏览不同的页面,而无需实际返回移动设备。
答案 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'
,但是我不知道这有多么重要。