有几种好的答案可以回答这个问题,但它们可能不适用于每种情况。
当动态生成 HTML 或从文件中引入 HTML 时,另一个选择是简单地管理 HTML 输出构造的顺序 - 在格式化操作之后执行 CSS 注入。
使用占位符为 CSS 准备模板
my_html = """<html>
<head>
<title>My Page</title>
<style></style>
</head>
<body>
<p>Content = {0}</p>
</body>
</html>"""
my_css = """<style>
body {
background-color: gray;
}
</style>"""
准备带有格式的HTML输出
my_page = my_html.format('foobar')
在格式化操作后注入CSS
my_final_page = my_page.replace('<style></style>', my_css)
输出
<html>
<head>
<title>My Page</title>
<style>
body {
background-color: gray;
}
</style>
</head>
<body>
<p>Content = foobar</p>
</body>
</html>
您不一定要使用<style></style>
标记对作为占位符。占位符可以是任何东西,只要它是唯一的(这样您就不会意外替换其他内容)。
完整示例
my_html = """<html>
<head>
<title>My Page</title>
<style></style>
</head>
<body>
<p>Content = {0}</p>
</body>
</html>"""
my_css = """<style>
body {
background-color: gray;
}
</style>"""
my_page = my_html.format('foobar')
my_final_page = my_page.replace('<style></style>', my_css)
print(my_final_page)
{{ }}
。 - Himal