1

オプションの@font-file引数は@font-name、LESSの値を取得できますか?javascriptの評価なし...

.font-face(@font-name, @font-file: ???) {
    font-family: '@{font-name}';
    src: url('fonts/@{font-file}.eot');
    src: url('fonts/@{font-file}.eot?#iefix') format('embedded-opentype'),
         url('fonts/@{font-file}.svg#@{font-file}') format('svg'),
         url('fonts/@{font-file}.woff') format('woff'),
         url('fonts/@{font-file}.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

かなりお粗末な質問の場合は申し訳ありませんが、私は今までにLESSで約2時間過ごしました:)

編集:ミックスインを複製せずに:

.font-face(@font-file) {
    .font-face(@font-file, @font-file)
}

.font-face(@font-name, @font-file) {
  font-family: '@{font-name}';
  src: url('fonts/@{font-file}.eot');
  src: url('fonts/@{font-file}.eot?#iefix') format('embedded-opentype'),
  url('fonts/@{font-file}.svg#@{font-file}') format('svg'),
  url('fonts/@{font-file}.woff') format('woff'),
  url('fonts/@{font-file}.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}
4

2 に答える 2

1

私の知識に対する答えは「いいえ」です。LESSは、パターンマッチングとガード式のみを使用してこのような評価を行うため、名前の設定に使用される可能性のある別のタイプの「if」条件を実行する方法はありませんfont-file

1つは1つの変数のみが渡されるパターンに一致し、もう1つは2つの変数が渡されるパターンに一致するため、LESSによると、「複製」ミックスインは実際には「重複」ではありません。したがって、あなたのソリューションは、あなたが望むものを達成するための正しい(そしておそらく最もエレガントな)方法です。

于 2012-12-17T02:59:28.583 に答える
0

宣言で実際にデフォルト値を指定できます。

.border-radius(@radius: 5px) {
  -webkit-border-radius: @radius;
     -moz-border-radius: @radius;
          border-radius: @radius;
}

そして、追加の引数の有無にかかわらずそれを使用します:

#header {
  .border-radius;
}

参照: http: //lesscss.org/features/#mixins-parametric-feature

于 2014-05-23T17:22:10.633 に答える