質問

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); }

いくら試しても、" My font"を引用することはできません。 ("!name"を使用)または" truetype" (引用符を削除します)。どのようにこれを行うことができますか?

役に立ちましたか?

解決

文字列補間を使用すると、少し改善できます:

!name = "asdf"
.foo
  font-family = "\"#{!name}\""

しかし、sassで引用符で囲まれた文字列を処理するには、より良いアプローチが必要であることに同意します。 Sassには、ここで何かインテリジェントなことを行うのに十分なコンテキストがあり、引用ロジックをユーザーにオフロードしません。

他のヒント

変数内で引用できます。二重引用符内で単一引用符を使用します。これは私がそれを行う方法です:

!string = "'Myriad Pro', 'Lucida Sans', Helvetica, Arial, sans-serif"
.foo
  :font-family= !string

これは正しくコンパイルされます:

.foo{
  font-family: 'Myriad Pro', 'Lucida Sans', Helvetica, Arial, sans-serif; }

他の方法で引用符を付けることはできないと思います(つまり、単一引用符内の二重引用符)。これを行うと、コンパイルエラーが発生します。

助けてくれた!

さて、私はする必要があることがわかりました:

"\"" + !name + "\""

気の毒な構文です...

http://www.fontsquirrel.com/fontface/generator を使用する 対応するSassミックスインがあります:

=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'")

これは、物事を引用符で囲みます:

@font-face {
  src: url("\"#{$ngx-font-path}/ngx-icon.eot\"");
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top