python - Plotly Dash Table 仅在一侧应用边框半径

标签 python plotly-dash

我用plotly dash创建的表格仅在左侧应用圆角。我尝试了 borderRadiusborderCollapseoverflow 组合的各种变体。没有任何帮助

enter image description here

样式代码:

style_header={'backgroundColor': '#305D91', 'color': '#FFFFFF', 'padding': '10px', 'border': '0'}
style_cell={
    
        'backgroundColor': '#FFFFFF',
        'color': '#000000',
        'fontSize':12, 'font-family':'sans-serif',
        'padding': '10px',
        'border': 'thin solid #FFFFFF',
         }
style_data_conditional=[
        {
            'if': {'row_index': 'odd'},
            'backgroundColor': '#E8E8E8',
        } ]

style_table={
        
       'borderRadius':'10px 10px',
       #'border-collapse': 'separate !important',
        #'maxHeight': '350px',
        #'maxWidth': '1200px',
        'overflow': 'hidden'
}
app.layout = html.Div([ 


html.Div([ html.Div('Q3', style=style)

     ]),


html.Div([ 

dash_table.DataTable(
data=df_Q3.to_dict('records'),
columns=[{'id': c, 'name': c} for c in select_broadest_df],

style_header=style_header,
style_cell=style_cell,
style_data_conditional=style_data_conditional,
style_table=style_table,
fill_width=False
)
        ]),

最佳答案

这是我使用的一个小技巧,它可以实现这一点 - 我只是在使用 Chrome DevTools 运行应用程序时检查了表格,并尝试更改不同的 CSS,直到它正常工作。

因此,我所做的就是添加更改为本地“.assets/”目录下的“custom.css”文件,其中包含以下内容:

.dash-table-container .dash-spreadsheet-container {
    display: table-cell!important;
}

这是您提供的我的(稍微)修改版本的 app.py 的代码:

import dash
from dash import html
from dash import dash_table

import pandas as pd
import numpy as np

app = dash.Dash(__name__)


style_header = {
    "backgroundColor": "#305D91",
    "color": "#FFFFFF",
    "padding": "10px",
    "border": "0",
}
style_cell = {
    "backgroundColor": "#FFFFFF",
    "color": "#000000",
    "fontSize": 12,
    "font-family": "sans-serif",
    "padding": "10px",
    "border": "thin solid #FFFFFF",
}
style_data_conditional = [
    {"if": {"row_index": "odd"}, "backgroundColor": "#E8E8E8"}
]

style_table = {"borderRadius": "10px", "overflow": "hidden"}

df_Q3 = pd.DataFrame(
    np.random.randint(0, 100, size=(10, 3)), columns=list("ABC")
)

app.layout = html.Div(
    [
        html.Div([html.H1("Q3")], id="title-div"),
        html.Div(
            [
                dash_table.DataTable(
                    data=df_Q3.to_dict("records"),
                    columns=[{"id": c, "name": c} for c in df_Q3.columns],
                    style_header=style_header,
                    style_cell=style_cell,
                    style_data_conditional=style_data_conditional,
                    style_table=style_table,
                    fill_width=False,
                    id="Q3-table",
                )
            ],
            id="Q3-table-div",
        ),
    ],
    style={"textAlign": "center", "margin": "10%"},
    id="main-body",
)


if __name__ == "__main__":
    app.run_server(debug=True, dev_tools_hot_reload=True)

(我刚刚为 pd.DataFrame 编写了随机数据。)

这导致了我相信您正在寻找的行为;运行应用程序时,我得到:

app when ran with both rounded corners of header

关于python - Plotly Dash Table 仅在一侧应用边框半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69664921/

相关文章:

python - Plotly Dash API 文档

plotly-dash - 如何通过 LAN 访问 Plotly-Dash 应用服务器

python - 如何使用 Python 从 Firebase 检索数据

python - 使用 python 数据框,将满足条件的行数列添加到满足条件的每一行

python - 当值通过循环进入时,字典 0 键值未被拾取

python - 一页上的多个 plotly plots 没有子图

python - Selenium headless browser webdriver [Errno 104] Connection reset by peer

python - 从列表列表创建唯一值的频率表

python - 如何在 dash/plotly 中使用 iframe? ( python /HTML)

python - 尝试在 Spyder IPython 控制台中初始化 Dash 时出错