如何组合 @font-face 和 @media 声明?
我想用很少的选择器构建一个通用的排版样式表。因此,我更愿意对各个版本使用 @media
部分,而不是创建不同的文件,每个文件只有几行内容。
我还想添加一些 @font-face
声明,但鉴于带宽有限,我不希望强迫移动用户下载字体。
我可以将 @font-face
声明放在 @media
块中还是它们都必须是顶级的?如果是后者,我如何告诉移动浏览器他们不需要费心下载字体?
I'd like to build a common typography stylesheet with a very small number of selectors. As such, I'd far prefer to use @media
sections for the various versions rather than create different files, each with only a few lines of content.
I'd also like to add some @font-face
declarations, but I'd prefer not to force mobile users to download the fonts given their limited bandwidth.
Can I put the @font-face
declaration within the @media
block or do they have to both be top-level? If the latter, how can I tell the mobile browsers they don't need to bother downloading the font?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
CSS2 规范 建议了类似这样的内容。
将您的
@font-face
声明放入单独的 CSS 文件中,例如fancyfonts.css
。在主 CSS 文件中加载
fancyfonts.css
,但带有媒体目标声明:在
font-family
中指定您的精美字体代码> 属性。<前><代码>正文{
font-family: '我的花式字体', serif;
}
不加载
fancyfonts.css
的媒体将回退到您指定的其他字体 - 在本例中为serif
。The CSS2 spec suggests something like this.
Put your
@font-face
declarations in a separate CSS file, such asfancyfonts.css
.Load
fancyfonts.css
in your main CSS file, but with a media-target declaration:Specify your fancy font in the
font-family
attribute.Media which don't load the
fancyfonts.css
will fall back to the other fonts you specify -- in this example,serif
.CSS3 Fonts 模块的当前工作草案似乎未指定这一点。但是, CSS 验证器 拒绝 font-face-inside-media,因此最好避免使用它。
This seems unspecified by the current Working Draft of the CSS3 Fonts module. However, the CSS Validator rejects font-face-inside-media, so it's probably best avoided.