破折号显示 card-border 和 card-header 之间的空格

Dash shows whitespace between card-border and card-header

在我的 Dash 应用程序中,我遇到了 bootstrap 卡片的问题。在下面的示例中,我有一个使用 Flatly 样式表的应用程序,它只包含一张卡片。

import dash
import dash_bootstrap_components as dbc

app = dash.Dash(__name__,external_stylesheets=[dbc.themes.FLATLY])

app.layout = dbc.Card([dbc.CardHeader('Test',style={'background':'red'}),dbc.CardBody('blabla')],style={'border-color':'green'})

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

当我 运行 这个应用程序(在命令行中使用 python app.py)时,卡片最初按预期呈现。然而,当我放大时,header 和边框之间似乎有 space(当我进一步放大时,它再次消失)。下图显示了预期布局的左侧和右侧,但中间在卡片边框和 header 之间可见白色 space。目前我试过的所有浏览器都会出现这个问题。

我的问题是:

对于为什么会出现这种行为,我没有一个明确的解释,但我确实有一个您可以使用的解决方法。

您可以使用 outline 而不是边框​​。使用轮廓而不是边框​​可以解决问题,因为:

Outlines never take up space, as they are drawn outside of an element's content.

import dash
import dash_bootstrap_components as dbc

app = dash.Dash(__name__, external_stylesheets=[dbc.themes.FLATLY])

app.layout = dbc.Card(
    [
        dbc.CardHeader("Test", style={"background": "red"}),
        dbc.CardBody("blabla"),
    ],
    style={"border": "none", "outline": "solid green"},
)

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