在服务器端有数据:
$arr[0]['title'] = 'John Smith';
$arr[0]['photo'] = 'img/John Smith.svg';
根据该数据,计算出字符图标的颜色:
$color = '#'.mb_substr(md5($arr[0]['title']),0,3);
根据这些数据,形成了代码:
<style>
.pic {
background-image: url(".$arr[0]['photo'].");
fill: ".$color.";
}
</style>
<h2>".$arr[0]['title']."</h2>
<div class="pic">
</div>
如果将 SVG 图像添加到 HTML 内联或 Base64 中,则不会有问题。
但是当它在文件中给出时如何着色呢?
UPD:.pic {--svg-color: ".$color."}
在css和svg文件中注册似乎是一个优雅的解决方案style="fill: var(--svg-color)"
,但是当图片是背景时它不起作用。(