Можно ли установить переменную расширения файла, используя LESS?LESS Расширение расширения файла
Вот базовое изложение того, что у меня происходит.
Я использую спрайты для своих фоновых изображений и использую SVG в качестве своего файла, работает как шарм. Однако в IE8 это явно не работает.
Я использую большой чек в Modernizr, заменяющий .svg расширения с .png расширениями, если браузер не поддерживает его:
if (!Modernizr.svg) {
jQuery('img[src$=".svg"]').each(function()
{
jQuery(this).attr('src', jQuery(this).attr('src').replace('.svg', '.png'));
});
}
Проблема заключается в том, что для моего спрайтов Mixin Я использую :
@sprite-Grid: 23px;
.sprite(@x, @y) {
background: url(../img/sprite.svg) no-repeat;
background-position: -(@x*@sprite-Grid) -(@y*@sprite-Grid);
}
И большой сценарий замены маленького изображения не относится к фоновым изображениям, только к тегам.
В идеале, что я ищу, чтобы сделать, это создать МЕНЬШЕ переменную, которая будет работать что-то вроде этого:
JQuery
if (!Modernizr.svg) {
jQuery('img[src$=".svg"]').each(function()
{
jQuery(this).attr('src', jQuery(this).attr('src').replace('.svg', '.png'));
});
less.modifyVars({
'@filetype': 'png'
});
} else {
less.modifyVars({
'@filetype': 'svg'
});
}
CSS
figure {
.sprite(0,0,@filetype);
}
@sprite-Grid: 23px;
.sprite(@x, @y, @filetype) {
background: url(../img/[email protected]) no-repeat;
background-position: -(@x*@sprite-Grid) -(@y*@sprite-Grid);
}
В Короче говоря, я хотел бы создать переменную, которая будет передана, и зависит от того, er поддерживает SVG. Если это так, то оно меняет его на «sprite.svg», и если оно не меняет его на «sprite.png»
Это даже вещь?
Любая помощь очень ценится.
Спасибо! Это сработало, за исключением того, что фоновая позиция должна быть переопределена с помощью .svg & section. – robbclarke
Это достаточно легко добавить. Я не знал этого в целях иллюстрации, но, по крайней мере, у вас есть концепция для работы. – ScottS
Да, это была только одна строка, чтобы добавить - вообще не biggie. Спасибо за вашу помощь. – robbclarke