Less에서 문자열 연결


129

나는 이것이 가능하지 않다고 생각하지만, 방법이있을 경우를 대비하여 생각했다. 아이디어는 웹 리소스 폴더 경로에 대한 변수가 있다는 것입니다.

@root: "../img/";
@file: "test.css";
@url: @root@file;

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

결과적으로 이것을 얻습니다.

.px { background-image: url("../img/" "test.css"); }

그러나 문자열을 다음과 같이 하나의 문자열로 결합하고 싶습니다.

.px { background-image: url("../img/test.css"); }

Less에서 문자열을 함께 연결할 수 있습니까?

답변:


225

변수 보간 사용 :

@url: "@{root}@{file}";

전체 코드 :

@root: "../img/";
@file: "test.css";

@url: "@{root}@{file}";

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

답변 해주셔서 감사합니다! 이것은 완벽 해요. 이제 컨텍스트 경로가 변경 되어도 리팩토링 악몽이 발생하지 않도록 할 수 있습니다.
juminoz

감사합니다. 방금 동일한 문제가 발생하여 문서에서 누락되었습니다.
David

감사합니다 @Paulpro! VS Web Compiler 애드온에서 배경 이미지 URL을 변경하는 데 문제가
있었고

6
이 답변에 착륙했지만 숫자 변수를 px또는 같은 문자열과 결합하기 위해 사용하려고하는 사람들을위한 참고 사항 %: 다음과 같이 물결표 ~width: ~"@{w}px";
앞에 문자열을 붙여서

29

documentation 에서 볼 수 있듯이 변수 및 일반 문자열과 함께 문자열 보간을 사용할 수 있습니다.

@base-url: "http://assets.fnord.com";
background-image: url("@{base-url}/images/bg.png");

12

이미지 처리와 동일한 트릭을 찾고있었습니다. 나는 이것에 대답하기 위해 mixin을 사용했다 :

.bg-img(@img-name,@color:"black"){
    @base-path:~"./images/@{color}/";
    background-image: url("@{base-path}@{img-name}");
}

그런 다음 사용할 수 있습니다 :

.px{
    .bg-img("dot.png");
}

또는

.px{
    .bg-img("dot.png","red");
}

안녕하세요, 환영합니다! 허용 된 답변이 더 이상 유효하지 않다고 생각하는 이유는 무엇입니까? 구식입니까? 기술 향상이 있었습니까? 틀렸어? 왜 당신이 더 낫습니까?
STT LCU

9

문자열과 같은 단위 값의 경우 함수 45degtransform: rotate(45deg)사용하십시오 unit(value, suffix). 예:

// Mixin
.rotate(@deg) {
  @rotation: unit(@deg, deg);
  -ms-transform: rotate(@rotation);
  transform: rotate(@rotation);
}

// Usage
.rotate(45);

// Output
-ms-transform: rotate(45deg);
transform: rotate(45deg);

1
기술적으로 질문에 대답하지는 않지만 여전히 유용한 트릭입니다.
trysis


-7

Drupal 7 사용. 나는 평범한 더하기 표시를 사용했으며 작동합니다.

@images_path+'bg.png'

5
Concat 문자열이 LESS / CSS에서 사용하기 위해 Drupal을 기꺼이 배우지 않는 한, 당신의 제안은 가치가 없다고 생각합니다. 불쾌, 그냥 말하고 있습니다.
ozanmuyes 2018 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.