0
php-less 컴파일러에서 전달 된 변수를 기반으로 "전역"변수를 재정의하려고합니다.mixin 함수 내에서 전역 변수 덮어 쓰기
제가 잘못한 일을하고 있는지, 아니면 범위 때문에 불가능한 것인지 확실하지 않습니다.
편집 :이 경우에는 신체의 배경이 붉어 지려고합니다.
external.less
// From external less stylesheet that I can't/don't want to modify
@myColour: blue;
body {
background: @myColour; // always blue
}
my.less
@import "external.less"
// My styles
.setResponsive(@responsive) when (@responsive = on) {
@myColour: green;
}
.setResponsive(@responsive) when (@responsive = off) {
@myColour: red;
}
@responsiveState: off; // actually being set from compiler
.setResponsive(@responsiveState);
div {
.setResponsive(@responsiveState);
background: @myColour; // red
}
http://codepen.io/anon/pen/gbOymJ
죄송를 (당신이 @responsiveState을 설정하는 데 사용하는 동일한 메커니즘을 사용하여) 코드의 끝에서 모든 변수를 다시 선언해야입니다 'div'? 빨간색이 아닌가요? – Harry
죄송합니다.이 경우 BODY의 배경이 빨간색이 될 것으로 예상합니다 – brightemo
[여기]와 같이 이름이없는 네임 스페이스 ('&')를 사용하는 옵션이 있습니다 (http://codepen.io/hari_shanx/pen/ mydgMg). 그러나 이것이 유일한/최선의 선택인지는 확실하지 않습니다. 다른 더 좋은 대답이 없다면 이것을 답으로 추가하겠습니다. – Harry