微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CSS加载字体:URL中的#是什么意思,以及如何添加GET参数?

如何解决CSS加载字体:URL中的#是什么意思,以及如何添加GET参数?

我在CSS / SCSS中使用fontawesome。字体是这样嵌入在scss中的:

src: url('#{$fa-font-path}/fa-regular-400.eot');
src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),url('#{$fa-font-path}/fa-regular-400.woff') format('woff'),url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'),url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');

要使预加载在我们的服务器上正确运行,我需要添加一个GET参数(这是由于会话内容所致),因此我需要更改

fa-regular-400.woff2 

fa-regular-400.woff2?preload

但是#做些什么?在网页上的“普通” URL中,它将是锚点,但在字体文件中?如何正确将preload参数添加到:

fa-regular-400.eot?#iefix
fa-regular-400.svg#fontawesome

是吗

fa-regular-400.eot?#iefix&preload
fa-regular-400.svg#fontawesome?preload

fa-regular-400.eot?preload#iefix
fa-regular-400.svg?preload#fontawesome

??

解决方法

fa-regular-400.eot?preload#iefix
fa-regular-400.svg?preload#fontawesome

这是正确的方法。 #part只是一个片段,在解析HTTP请求时通常会被完全忽略。我什至怀疑大多数浏览器甚至没有将其发送到服务器。

尽管(在IE11之前),您可能想在旧版IE上仔细检查fa-regular-400.eot?preload#iefix,首先是因为他们的CSS解析器忽略了我们滥用的?之后的所有内容忽略其他字体格式。

对于SVG字体,#id可以告诉浏览器文件中哪个svg元素用作字体。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。