我正在使用SASS生成@ font-face mixin,但是这个:
=remotefont(!name, !url)
@font-face
font-family = !name
src = url(!url + ".eot")
src = local(!name), url(!url + ".ttf") format("truetype")
+remotefont("My font", "/myfont.ttf")
成为这个:
@font-face {
font-family: My font;
src: url(/myfont.ttf.eot);
src: local(My font), url(/myfont.ttf.ttf) format(truetype); }
无论我尝试多少,我都不能引用“我的字体”(带有“!name”)或“truetype”(它会删除引号)。关于如何做到这一点的任何想法?
答案 0 :(得分:6)
使用字符串插值可以做得更好:
!name = "asdf"
.foo
font-family = "\"#{!name}\""
但我同意我们需要一种更好的方法来处理sass中的引用字符串。 Sass有足够的上下文在这里做一些聪明的事情,而不是将引用逻辑卸载给用户。
答案 1 :(得分:5)
您可以引用变量,在双引号中使用单引号。我就是这样做的:
!string = "'Myriad Pro', 'Lucida Sans', Helvetica, Arial, sans-serif"
.foo
:font-family= !string
这将正确编译为:
.foo{
font-family: 'Myriad Pro', 'Lucida Sans', Helvetica, Arial, sans-serif; }
我认为你不能反过来引用(即单引号内的双引号)。这样做会给你编译错误。
希望有所帮助!
答案 2 :(得分:3)
好的,我发现我需要这样做:
"\"" + !name + "\""
该死的,这是一些尴尬的语法...
答案 3 :(得分:1)
使用http://www.fontsquirrel.com/fontface/generator 我有一个相应的Sass mixin:
=addfont(!name, !url, !family = 0)
@if !family == 0
!family = !name
@font-face
font-family = "'#{!name}'"
src = url(!url + ".eot")
src = local("'#{!name}'"), local("'#{!family}'"), url(!url + ".woff") format("'woff'"), url(!url + ".ttf") format("'truetype'"), url(!url + ".svg#" + !name) format("'svg'")
答案 4 :(得分:0)
您可以使用字符串函数quote:
font-family: quote(!name)