標準形式または網膜形式のいずれかで画像を出力するための小さな LESS ベースの mixin を作成しました。これに付随するいくつかの CSS URL 内で変数をラップすることに頭を悩ませることができません。以下のコードをコンパイルすると、url(' http://sample.com/images/ 'sprite@2x. png'') . コンパイラが変数をフェッチするには、両方のバックグラウンド プロパティを引用符で囲む必要があるようです。これは機能しますが、ppi の高いシナリオで background プロパティを設定しようとすると、ファイル名をこれらの余分な一重引用符で囲むことになります。
.image(@path, @w: auto, @h: auto) {
background-image: url('@{base-url}/images/@{path}');
@path_2x: ~`"@{path}".split('.').slice(0, "@{path}".split('.').length - 1).join(".") + "@2x" + "." + "@{path}".split('.')["@{path}".split('.').length - 1]`;
@media all and (-webkit-min-device-pixel-ratio : 1.5) {
background-image: url('@{base-url}/images/@{path_2x}');
background-size: @w @h;
}
}
何か案は?