LESS css set dynamic background image with mixin

喜欢而已 提交于 2019-12-20 17:39:33

问题


I am using LESS CSS .

I am currently using Mixins with variables.

Something like this works okay :

.border-radius (@radius) { border-radius: @radius; }

#header { .border-radius(4px);  }

This is not :

.bg-img(@img) { background-image:url(@img); }

#logo { .bg-img("../images/logo.jpg"); }

i have tried combinations of using ' & " in the background-image:url ('') & ("") but then it tries to get the image as images/@img instead of the image name. other wise it gives me an error of
Cannot call method 'charAt' of undefined

I think writing background-image:url() all the time is too tedious, is this possible..?


回答1:


:) got my answer!

it needs to be used like this in my case :

.bg-img(@img) { background-image:url("@{img}"); }

#logo { .bg-img("../images/logo.jpg"); }



回答2:


You can further improve on this by adding the first part of the image path to the initial mixin so you only have to write it once:

.bg-img(@img) { background-image:url("../images/@{img}"); }

#logo { .bg-img("logo.jpg"); }

A small improvement but does add a little elegance.



来源:https://stackoverflow.com/questions/6334644/less-css-set-dynamic-background-image-with-mixin

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!