python-3.x - 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})
当我在移动设备中查看网页时,选项必须显示在侧边导航中。所以我可以浏览不同的页面,而无需实际返回移动设备。
解决方案
在您提供的链接中,该示例包含以下元素,您的布局中缺少该元素:
<a href="#" data-target="mobile-demo" class="sidenav-trigger"><i class="material-icons">menu</i></a>
这是在移动设备上打开菜单的按钮。具体来说,该data-target
属性是必不可少的,因为它会触发点击事件。
不幸的是,目前在 Dash 中没有简单的方法可以将此属性添加到 HTML 元素(请参阅此线程)。
另外,您忘记给nav
元素指定类名'nav-extended'
,但我不知道这有多重要。
推荐阅读
- python - 可以使用函数调用使用 smtp 向多个收件人发送邮件吗?
- javascript - AngulaJS,试图学习,但发生了一些事情。初学者
- javascript - 将字符串转换为 JSX(HTML 标记)以在 React 中显示
- android - scanForPeripherals 报告几十个随机外围设备(一个物理设备)
- python - 将嵌套值添加到由值列表组成的当前字典
- python - 打开 CV RTSP 相机缓冲滞后
- python - Vaex 日期时间比较
- python - 扫雷:Python 错误。AttributeError:类型对象没有属性
- java - 三星设备上 performLaunchActivity 期间的 Android RuntimeException
- c# - 如何编组包含从 C 到 C# 的联合的结构