2013-04-20 4 views
8

私は、自分のLESSスタイルシートでイメージの幅番号をハードコーディングしていました。ビットマップファイルからイメージディメンションを取得することは可能ですか?

これを自動化するLESS機能を使用することはできますか?例えば

@banner-width : image-width("image/banner.png"); 
+0

間違いなく、それは確かに興味深く有用です。 –

+0

JavaScriptを使わなくても、これをLESSに追加すればいいですね。 –

答えて

6

あなたは、あなたがバックティックの間javascriptの補間を使用し、通常のjavascript機能を使用することができます以下(less.js)のjavascriptの実装を使用している場合は - このような何か:

@banner-width: ~`function(imguri){var img=new Image(); img.src = imguri; return img.width }('image/banner.png')`; 

をさらに進んで再利用可能なミックスインを作ります。

LESS:

.width(@img) { 
    @width: ~`function(imguri){var img=new Image(); img.src = imguri; return img.width }(@{img})`; 
    width: @width; 
} 
.height(@img) { 
    @height: ~`function(imguri){var img=new Image(); img.src = imguri; return img.height }(@{img})`; 
    height: @height; 
} 

.test{ 
    @src: 'http://www.google.com/intl/en_ALL/images/logo.gif'; 
    .width(@src); 
    .height(@src); 
} 

出力CSS:それはこのロゴの広告にhttp://www.google.com/intl/en_ALL/images/logo.gif

  • する必要があります正確に何である

    .test { 
        width: 276; 
        height: 110; 
    } 
    

    ユニットをあなたはcouchしてからunit(@dimension,px)をミックスインに追加します。

+2

これはLESSCコンパイラでは機能しません。 'イメージは未定義です' – RedactedProfile

関連する問題