如何在 CSS 样式 sheet 中使用动态字体 url
How do I use a dynamic Font url in a CSS style sheet
我正在构建一个小部件,用户可以设计该小部件,然后将其嵌入到他们自己的网站上。他们可以选择的一件事是我们在 AWS 上自行托管的字体。
在初始加载期间,应用程序点击我们的 API 以获取小部件详细信息,响应中返回字体 URL。然后我们将其设置为 CSS 变量,如下所示:
HTML:
<div v-bind:style="cssProps">
Vus JS :
cssProps(){
return {
'--accent_color': "#" + this.$store.state.accent_color,
'--font-url': (this.$store.state.font != null ? "https://wifiuploads.s3.amazonaws.com/" + this.$store.state.font : '"Source Sans Pro", sans-serif'),
}
}
我遇到的主要问题是我无法像这样插入动态 url:
@font-face {
font-family: "user_selection";
src: url(var(--font-url));
}
我不能为字体使用静态 url,我需要使用动态 URL.
将字体加载到我的样式表中
为了解决这个问题,我使用 Javascript:
创建了一个带有字体规则的样式元素
JS:
created(){
var newStyle = document.createElement('style');
newStyle.appendChild(document.createTextNode("\
@font-face {\
font-family: 'user_selection';\
src: url('https://wifiuploads.s3.amazonaws.com/" + this.$store.state.font + "');\
}\
"));
document.head.appendChild(newStyle);
},
CSS:
body{
font-family: "user_selection";
}
我正在构建一个小部件,用户可以设计该小部件,然后将其嵌入到他们自己的网站上。他们可以选择的一件事是我们在 AWS 上自行托管的字体。
在初始加载期间,应用程序点击我们的 API 以获取小部件详细信息,响应中返回字体 URL。然后我们将其设置为 CSS 变量,如下所示:
HTML:
<div v-bind:style="cssProps">
Vus JS :
cssProps(){
return {
'--accent_color': "#" + this.$store.state.accent_color,
'--font-url': (this.$store.state.font != null ? "https://wifiuploads.s3.amazonaws.com/" + this.$store.state.font : '"Source Sans Pro", sans-serif'),
}
}
我遇到的主要问题是我无法像这样插入动态 url:
@font-face {
font-family: "user_selection";
src: url(var(--font-url));
}
我不能为字体使用静态 url,我需要使用动态 URL.
将字体加载到我的样式表中为了解决这个问题,我使用 Javascript:
创建了一个带有字体规则的样式元素JS:
created(){
var newStyle = document.createElement('style');
newStyle.appendChild(document.createTextNode("\
@font-face {\
font-family: 'user_selection';\
src: url('https://wifiuploads.s3.amazonaws.com/" + this.$store.state.font + "');\
}\
"));
document.head.appendChild(newStyle);
},
CSS:
body{
font-family: "user_selection";
}