2012-02-11 3 views
11

소개 :덜 CSS에서 URL 매개 변수를 사용할 수 있습니까?

나는 asp.net mvc 환경에서 덜 사용하려고합니다.

저는 서버 측 프로세싱에 dotless를 사용합니다. 특히 클라이언트 측 프로세싱을 사용하여 전체 프로젝트를 게시하는 것을 선호하지 않습니다.

다른 것들 (예 : 시간대)에 따라 다른 색 구성표가있는 디자인을 적용해야합니다.

매개 변수화 된 CSS를 디자인하고 모든 테마의 파일 시작 부분에있는 10 개의 변수 만 변경하면 매우 힘이 들지 않습니다.

문제 :

하지만 어떻게 든 외부 매개 변수에서 색상 테마를 변경해야합니다.

아이디어 :

우선은 style.less 테마 = 밝은 자홍과 같은 URL 매개 변수가 좋을 것이라고 생각하지만, 나는 이런 식으로 뭔가를 구문 분석 할 수있는 방법을 찾을 수 없습니다.

그런 다음 매우 짧은 파란색을 만드는 것이 좋습니다. 녹색, 녹색, 오렌지가 아닌 것으로 선언 된 색상 변수만으로 구성되며 주를 포함하지 않는 것이 모두 단색 솔루션이라고 생각했습니다.

나는 두 번째 해결 방법을 시도 할 기회가 없었지만 이것이 가장 강력한 방법에 대한 조언을 구하는 좋은 시간이라고 생각했습니다.

문제는 다음과 같습니다. 외부의 적은 파일에서 일부 작업을 제어하려고합니다.

답변

22

네, 그 이유는 정확하게 구현했기 때문입니다.

Dotless는 querystring 매개 변수를 통해 외부에서 매개 변수를 지원합니다.

@foo = bar; 

매개 변수 주입 코드는 매우 간단합니다 :

<link rel="stylesheet" href="style.less?foo=bar" /> 

덜 다음은 사용하게됩니다. 단지 변수 선언을 일반 less 파일에 추가하기 때문에 쿼리 문자열 매개 변수로 오는 모든 것은 위의 구문을 따릅니다.

문제의 코드는 매우 간단하다 : https://github.com/dotless/dotless/blob/master/src/dotless.Core/Engine/ParameterDecorator.cs

+1

이것은 내가 바라는 대답이다! : D – SoonDead

+0

@Tigraine : 저장 방법은 무엇입니까? 공격자는 악성 코드를 스타일 시트에 쉽게 삽입 할 수 있습니다. – jor

+0

이것을 사용하는 것은 그리 간단하지 않습니다. '@import 'theme-param-default.less ";'my line'@import"darkly-variables - @ {theme} .less ";'@theme : dark;'가 포함 된 테마를 생성해야했습니다. 컴파일 문제였습니다. –

5

AFAIK, 당신은 dotnetless를 사용하여 컴파일 작업을 수행하기위한 매개 변수를 전달할 수 없습니다.

제안 사항에 따라 다른 파일을 조금이라도 호출하지 않는 이유는 무엇입니까? 이것은 Viewbag 속성을 사용하여 매우 쉽게 할 수 있습니다.

다른 것들을 줄이려면, 먼저 각 색상 세트가 들어있는 적은 파일을 만듭니다. 그런 다음 기본 css 파일을 가져옵니다. dotnetless는 상위 파일의 색상 정의를 기본 파일의 용도와 병합합니다. 그래서 당신은 다음과 같은 것을 가지고 있습니다 : -

@baseGray: #ddd; 
@baseGrayDark: darken(@baseGray, 15%); 
@baseGrayLight: lighten(@baseGray, 10%); 
@import "baseCss.less"; 

저는 이것을 MVC3 프로젝트에서 테스트했는데 작동합니다.

+0

덕분에,이 또한 내가해야 할 일이다. 기꺼이 하나 이상의 답변을 수락 할 수있는 경우가 있습니다. 이것은 하나입니다. – SoonDead

관련 문제