- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Dash 允许使用我们自己的 CSS 样式表。但是,如果您在科学领域并且不熟悉 CSS,则可以使用 Bootstrap 组件,这使得样式和页面布局非常容易组合在一起。
这是在破折号中创建侧边栏的标准示例:"""
This app creates a simple sidebar layout using inline style arguments and the
dbc.Nav component.
dcc.Location is used to track the current location. There are two callbacks,
one uses the current location to render the appropriate page content, the other
uses the current location to toggle the "active" properties of the navigation
links.
For more details on building multi-page Dash applications, check out the Dash
documentation: https://dash.plot.ly/urls
"""
import dash
import dash_bootstrap_components as dbc
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = dash.Dash(external_stylesheets=[dbc.themes.BOOTSTRAP])
# the style arguments for the sidebar. We use position:fixed and a fixed width
SIDEBAR_STYLE = {
"position": "fixed",
"top": 0,
"left": 0,
"bottom": 0,
"width": "16rem",
"padding": "2rem 1rem",
"background-color": "#f8f9fa",
}
# the styles for the main content position it to the right of the sidebar and
# add some padding.
CONTENT_STYLE = {
"margin-left": "18rem",
"margin-right": "2rem",
"padding": "2rem 1rem",
}
sidebar = html.Div(
[
html.H2("Sidebar", className="display-4"),
html.Hr(),
html.P(
"A simple sidebar layout with navigation links", className="lead"
),
dbc.Nav(
[
dbc.NavLink("Page 1", href="/page-1", id="page-1-link"),
dbc.NavLink("Page 2", href="/page-2", id="page-2-link"),
dbc.NavLink("Page 3", href="/page-3", id="page-3-link"),
],
vertical=True,
pills=True,
),
],
style=SIDEBAR_STYLE,
)
content = html.Div(id="page-content", style=CONTENT_STYLE)
app.layout = html.Div([dcc.Location(id="url"), sidebar, content])
# this callback uses the current pathname to set the active state of the
# corresponding nav link to true, allowing users to tell see page they are on
@app.callback(
[Output(f"page-{i}-link", "active") for i in range(1, 4)],
[Input("url", "pathname")],
)
def toggle_active_links(pathname):
if pathname == "/":
# Treat page 1 as the homepage / index
return True, False, False
return [pathname == f"/page-{i}" for i in range(1, 4)]
@app.callback(Output("page-content", "children"), [Input("url", "pathname")])
def render_page_content(pathname):
if pathname in ["/", "/page-1"]:
return html.P("This is the content of page 1!")
elif pathname == "/page-2":
return html.P("This is the content of page 2. Yay!")
elif pathname == "/page-3":
return html.P("Oh cool, this is page 3!")
# If the user tries to reach a different page, return a 404 message
return dbc.Jumbotron(
[
html.H1("404: Not found", className="text-danger"),
html.Hr(),
html.P(f"The pathname {pathname} was not recognised..."),
]
)
if __name__ == "__main__":
app.run_server(port=8888)
Bootstrap nav pills 是导航栏中的元素。它们是导航组件,允许用户浏览布局中的各种选项。 example
在 CSS 脚本中 example , pills 有不同的组件,可以是样式,例如:
/* CSS used here will be applied after bootstrap.css */
body {
background: #000;
}
.nav-pills a {
color: #ffffff
}
.nav-pills a:hover {
color: #560000;
border-radius: 0px;
}
.nav-pills .active a:hover {
color: #560000;
border-radius: 0px;
}
.nav>li>a:hover,
.nav>li>a:focus {
color: #560000;
border-radius: 0px;
}
我想通过我的 python 脚本更新药丸样式,并在悬停时更改药丸的颜色,当它处于事件状态时,我想更改字体类型及其文本颜色。我仍然熟悉 CSS,因此我宁愿通过 python 脚本更新它。通过设置样式参数,我确实成功地覆盖了 CSS 样式。
根据 Dash Bootstrap components我可以按如下所述将药丸样式设置为导航项目:
pills( bool 值,可选):将 pill 样式应用于导航项。事件项目将由药丸指示。
我已经这样编辑了代码:
sidebar = html.Div(
[
html.H2("Sidebar", className="display-4"),
html.Hr(),
html.P(
"A simple sidebar layout with navigation links", className="lead"
),
dbc.Nav(
[
dbc.NavItem(dbc.NavLink("Page 1", href="/page-1", id="page-1-link"), style={"background-color": "grey"}),
dbc.NavLink("Page 2", href="/page-2", id="page-2-link"),
dbc.NavLink("Page 3", href="/page-3", id="page-3-link"),
],
vertical=True,
pills=True,
# className="nav navbar-nav",#"nav nav-pills hidden-sm",
#style ={"li:hover" =""}
),
],
style=SIDEBAR_STYLE,
)
这只会改变背景颜色,而不会在鼠标悬停或处于事件状态时改变药丸颜色和字体颜色。 python中的语法是什么?我在代码中尝试了很多选项,并且在 python 中搜索了样式语法,但我仍然没有遇到等效的 python 样式语法 example .
我最接近更改 pill 样式的方法是更改可用的 Bootstrap 样式表:
app = dash.Dash(external_stylesheets=[dbc.themes.FLATLY])
您可以在 html 中查看各种主题及其代码 here
最佳答案
我强烈建议您在 css 样式表中采用处理伪类样式的方法,例如 :hover
和 :active
。
要包含 css 样式表,请参阅文档 here .基本上你只需要在你的根目录中有一个 assets
文件夹,并将 .css
文件放在里面。
因此,您可以向每个 NavLink
添加一个 className
属性,使用样式表中的类定位元素并添加 :hover
和 :active
根据需要设置样式。
在你的 Dash 布局中:
dbc.NavLink("Page 1", href="/page-1", id="page-1-link", className="page-link"),
在您的 assets
目录中的一个 css 文件中:
.page-link:hover {
background-color: green;
}
.page-link:active {
background-color: blue;
}
您还可以在 assets
文件夹中包含脚本,并使用 Javascript 设置元素样式(如果您需要以 css 无法实现的方式使其动态化)。
为什么您的方法无法按照您对内联样式的预期方式工作,请参阅 CSS Pseudo-classes with inline styles .
现在可以使用 Location
监听路由变化并根据当前路由改变每个 NavLink
的事件状态。我再次推荐更简单且更易于扩展的 css 方法,以下方法也不适用于悬停,但您可以执行类似的操作来更改单击时的样式:
from dash import Dash
import dash_bootstrap_components as dbc
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
links = [
{"id": "page-1-link", "href": "/page-1", "link-text": "Page 1"},
{"id": "page-2-link", "href": "/page-2", "link-text": "Page 2"},
{"id": "page-3-link", "href": "/page-3", "link-text": "Page 3"},
]
sidebar = html.Div(
[
dcc.Location(id="url", refresh=False),
html.H2("Sidebar", className="display-4"),
html.Hr(),
html.P("A simple sidebar layout with navigation links", className="lead"),
dbc.Nav(
[
dbc.NavItem(
dbc.NavLink(link["link-text"], href=link["href"], id=link["id"])
)
for link in links
],
vertical=True,
pills=True,
),
],
)
app.layout = sidebar
@app.callback(
[Output(link["id"], "active") for link in links],
Input("url", "pathname"),
prevent_initial_call=True,
)
def display_page(pathname):
actives_list = [False for link in links]
if pathname == "/":
return actives_list
actives_list[int(pathname[-1]) - 1] = True
return actives_list
if __name__ == "__main__":
app.run_server(port=8888)
关于plotly-dash - 使用 dash python 更改 bootstrap nav-pills 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62106013/
我是 Bootstrap 的新手。每次我使用 Bootstrap 创建导航栏时,我都会使用这些元素/类,但所有这些都让我感到困惑: .nav .navbar .navbar-nav 谁能解释一下这些
我正在使用最新的 Angular Bootstrap 版本。当屏幕尺寸缩小到 768 像素以下时,类“nav nav-pills nav-justified”不会堆叠选项卡。 我引用了网站 http:
我有以下代码,div 内有两个 ul 元素,每个元素都有导航、导航丸、导航堆叠类。 All Pending K
我正在使用 Bootstrap pill 在同一页面上进行切换。有两个导航丸和两个分别对应的 div。我已经正确构建了第一个 div,并且工作正常。但是当我试图构建第二个 div 时,第一个 div
似乎 NAV 的潜在性质是抵制要求强制填充字段。对于我们的业务逻辑,必须填充某些字段才能使数据有效。例如,客户记录必须至少有姓名和电话号码。我搜索了很多地方,但没有找到合适的解决方案。那么如何做到这一
Bootstrap Navbars Toggle navigation
我注意到,在 Dynamics NAV 2013 中,一些 TextConst 已开始使用 @@@ 作为语言代码。 例如在 Codeunit 12 中: PurchaseAlreadyExistsEr
如何像图片一样更改引导菜单中打开的链接的颜色。它适用于鼠标悬停和单击后更改为菜单的默认颜色。 我需要像图片一样的东西。 HTML @Html.Action
我正在尝试列出我的 drop-down它工作正常,但在我点击财务报告链接后,我想要 的剩余内容标签向下移动和 drop-down应该在里面打开, .请提供任何帮助,我很感激。 这是我的代码:
我正在使用 Angular4,nav nav-tabs 样式似乎不起作用,我得到的只是无序的垂直列表,如下图 - 我的选项卡组件代码是 - @Component({ selector: 'tabs',
当我尝试构建我的网页时,我的菜单链接底部和我的主导航区域之间有一个非常小的空间(大约 2 像素)。我只使用颜色来查看布局的工作原理,但有人能告诉我为什么会有差异吗?当然他们应该是相同的高度?当前状态可
即使我不是一个新程序员,Html 和 Css 问题对我来说也是无解的。简单阅读文档/规范似乎还不够,因为每个示例都带有一个新的标签和类早午餐来演示其中一个的使用。我的代码基于 Bootsrap 官方演
我喜欢导航标签的外观,所以我想使用它。这是 Web 应用程序现在的样子: 不幸的是,如果我单击其他选项卡(例如“Buscar alojamiento”),事件选项卡不会更改。这是我的代码:
我正在尝试使用 nav navbar-nav navbar-right 创建一个下拉菜单。我让它在移动设备(较小的屏幕)上对齐但是当我点击下拉菜单时它不会将菜单项向下推但是而是下拉其他菜单项。我不确定
工具提示在这种情况下工作正常 Home 但是一旦我将它嵌套在带有 nav 和 nav-side
我有一个应用程序,如果我提取代码并创建一个单独的 html 文件,只用它工作的代码,它就可以工作。 About
我对 Twitter Bootstrap 有疑问。我创建了一个简单的下拉菜单,但是当我在 chrome 检查器中检查代码时,我看到类 nav nav-pills被添加到 元素。 如何删除这些类?
我正在尝试删除我的菜单和后续部分之间的 Bootstrap 空白。我的菜单 HTML 是:
我正在使用 Bootstrap 4 并尝试使导航项与我的导航栏具有相同的高度,这样当我向其添加背景色时,它看起来就像穿过导航栏的条纹。 最初,该元素居中,并在顶部和下方留有空间。我添加了负边距以使其与
我是一名优秀的程序员,十分优秀!