Я написал некоторый код LESS, который изменяет размер текста на основе ширины браузера. Множество разных элементов и их параметров можно отправить в многоразовый микс.Несогласованный вывод между компиляторами LESS
Все онлайн-компиляторы LESS выдают желаемый результат. Но я получаю разные результаты от компилятора Squarespace LESS.
Компилятор Squarespace, кажется, «висеть» на старых значениях переменных, когда вызывается второй раз.
Вы видите, как компилятор Squarespace LESS достигает своего вывода и, если да, обмениваются изменениями, которые могут быть сделаны, чтобы сделать вывод согласованным со всеми другими компиляторами?
Выход из интернет-трансляторов: (желательно)
@media screen and (max-width: 1280px) {
.homesCommunitiesLayout #pageHeroWrapper {
font-size: 120px;
}
}
@media screen and (max-width: 640px) {
.homesCommunitiesLayout #pageHeroWrapper {
font-size: 60px;
}
}
@media screen and (max-width: 1280px) {
#divisionTitle {
font-size: 85px;
}
}
@media screen and (max-width: 853.3333333333334px) {
#divisionTitle {
font-size: 56.666666666666664px;
}
}
@media screen and (max-width: 426.6666666666667px) {
#divisionTitle {
font-size: 28.333333333333332px;
}
}
Выход из Squarespace компилятора: (нежелательно)
@media screen and (max-width: 1280px) {
.homesCommunitiesLayout #pageHeroWrapper {
font-size: 120px;
}
}
@media screen and (max-width: 640px) {
.homesCommunitiesLayout #pageHeroWrapper {
font-size: 60px;
}
}
@media screen and (max-width: 1920px) { //<---Gone wrong! Continuing to use element1!
.homesCommunitiesLayout #pageHeroWrapper {
font-size: 180px;
}
}
@media screen and (max-width: 1280px) {
.homesCommunitiesLayout #pageHeroWrapper {
font-size: 120px;
}
}
@media screen and (max-width: 640px) {
.homesCommunitiesLayout #pageHeroWrapper {
font-size: 60px;
}
}
МЕНЬШЕ Исходный код и Link to code on Less2Css.org:
@maxSiteWidth: 1280px;
@fullWidth: @maxSiteWidth;
//Element 1 Parameters & Function Call
@fitTextElement1: ~".homesCommunitiesLayout #pageHeroWrapper";
@fitTextElement1Max: 120px;
@fitTextElement1Min: 50px;
@fitTextElement1BreakPoints: 2;
.fitText(@fitTextElement1; @fitTextElement1Max; @fitTextElement1Min; @fitTextElement1BreakPoints);
//Element 2 Parameters & Function Call
@fitTextElement2: ~"#divisionTitle";
@fitTextElement2Max: 85px;
@fitTextElement2Min: 26px;
@fitTextElement2BreakPoints: 3;
.fitText(@fitTextElement2; @fitTextElement2Max; @fitTextElement2Min; @fitTextElement2BreakPoints);
//Primary Looping Mixin
.fitText(@targetElement; @targetElementMaxSize; @targetElementMinSize; @targetElementBreakPoints) {
.mixin-loop (@loopIteration) when (@loopIteration > 0) {
@{targetElement} {
.setBreakPointWidth(@loopIteration; @targetElementBreakPoints);
@media screen and (max-width: @breakPointWidth) {
.setFontSize(@loopIteration; @targetElementMaxSize; @targetElementMinSize; @targetElementBreakPoints);
font-size: @targetElementFontSize;
}
}
.mixin-loop(@loopIteration - 1);
}
.mixin-loop(0){}
.mixin-loop(@targetElementBreakPoints);
}
//Function to set font size
.setFontSize(@loopNumber; @maxSize; @minSize; @breakPoints) {
@targetElementFontSize: (@maxSize/@breakPoints)*@loopNumber;
.resetFontSize(@targetElementFontSize; @minSize);
}
//Function to reset font size if below minimum desired
.resetFontSize(@calculatedSize; @minSize) when (@calculatedSize < @minSize) {
@targetElementFontSize: @minSize;
}
//Function to set break point
.setBreakPointWidth(@loopNumber; @breakPoints) {
@breakPointWidth: (@fullWidth/@breakPoints)*@loopNumber;
}
Обратите внимание, что Squarespace использует LESS 1.3.3, поэтому вам нужно вручную переключить Less2Css на эту версию (хотя, похоже, это ничего не изменит, если вы этого не сделаете).