Python中HTML表格CSS样式失效:仅部分样式生效求助
解决pandas生成HTML表格时th/td样式不生效的问题
问题重现
使用pandas的to_html生成HTML表格后,自定义的th、td样式(padding、text-align、border-bottom)未生效,仅table标签的border-collapse、width样式生效,相关代码如下:
file_path="/Users/andreaspagnolo/Desktop/uni/stage/result/result_data_1/final_result" table_df = pd.DataFrame(columns=["metric", "result", "average time"], index=None) dati_tabella = [ ["Silhouette", "correct", str(tempi_di_calcolo[0,0]) + " s"], ["Entropy", "wrong", str(tempi_di_calcolo[1,0]) + " s"], ["Davies-Bouldin", "correct", str(tempi_di_calcolo[2,0]) + " s"], ["Dunn index", "correct", str(tempi_di_calcolo[3,0]) + " s"], ["Calinski-Harabasz", "correct", str(tempi_di_calcolo[4,0]) + " s"], ["Gap Statistic", "correct", str(tempi_di_calcolo[5,0]) + " s"] ] for row_data in dati_tabella: table_df.loc[len(table_df)] = row_data html_table = table_df.to_html(index = False) table_df.to_csv(file_path + ".csv") styled_html_table = """ table { border-collapse: collapse; width: 100%; } th, td { padding: 100px; text-align: left; border-bottom: 1px solid #ddd; } """ + html_table display(HTML(styled_html_table))
原因分析
- CSS未正确识别:直接将CSS代码与HTML表格字符串拼接,未包裹在
<style>标签内,浏览器无法将其解析为样式规则,导致大部分样式失效。 - 内联样式优先级覆盖:pandas的
to_html默认会给th、td标签添加内联样式(如text-align: right、padding: 1px 2px),内联样式优先级高于普通内部样式表,即使正确包裹CSS,自定义样式也会被覆盖。
解决方法
方法1:用
相关产品推荐
相关产品推荐

