2012-06-14 2 views
-1

나는이 CSS 코드가 있는데, 짧게하고 싶습니다.짧은 CSS 코드

#one{ 
background: #6cab26; 
background-image: url(#1_img_url),-moz-linear-gradient(top, #444444, #999999); /* FF3.6+ */ 
} 

#two{ 
background: #6cab26; 
background-image: url(#2_img_url),-moz-linear-gradient(top, #444444, #999999); /* FF3.6+ */ 

} 

#three{ 
background: #6cab26; 
background-image: url(#3_img_url),-moz-linear-gradient(top, #444444, #999999); /* FF3.6+ */ 
} 

이 코드는 배경이있는 그라디언트를 사용합니다.

잘 작동하지만 짧게하는 방법은 무엇입니까?

나는 마라트이 제안이

#one,#two,#three{ 
background: #6cab26; 
background:-moz-linear-gradient(top, #444444, #999999); 
} 

#one{ 
background-image: url(#1_img_url) 
} 
#two{ 
background-image: url(#2_img_url) 
} 
#three{ 
background-image: url(#3_img_url) 
} 

답변

2

불행하게도, CSS는 현재 을한다은 여러 개의 배경 이미지 레이어를 사용할 때 별도의 배경 이미지 레이어를 덮어 쓰는 방법을 제공하지 않습니다.

LESS 또는 SASS과 같은 CSS 전 처리기를 활용하면 그라디언트를 변수에 저장하여 중복을 방지 할 수 있습니다. 예를 들어, LESS :

@grad: -moz-linear-gradient(top, #444444, #999999); 

#one { 
    background-image: url(#1_img_url), @grad; 
} 

#two { 
    background-image: url(#2_img_url), @grad; 
} 

#three{ 
    background-image: url(#3_img_url), @grad; 
} 
+0

나는 3 년 이래로 CSS 코더입니다.하지만 이것은 처음으로 CSS에서 varibales를 설정할 수 있다는 것을 알고 있습니다 !! 이 좋은 soultion 고마워요 (f) –

+0

나는이 (futare/service) (-webkit, -o, 필터, 등) 다른 모든 브라우저와 함께 사용할 것이므로이 코드 줄이기를 원한다.이 코드는 가장 큰 코드는 ... 그래서 당신 생각은? –

+0

이것들은 css의 변수가 아닙니다 (곧 나옵니다). 그러나 css 전처리 기의 변수는 – Luca

2

편집

코드 같은 것을 처리기를 사용하지 않고 가능한 한 짧은하려면 (그에게 신용을!)

+0

이는 작동하지 않습니다. http://jsfiddle.net/xGdv5/1/ – barro32

+0

@luca 지금이 코드를 사용해 보겠다.하지만 이미 테스트를 마친 상태 다. –

+0

미안 해요 실수를 수정하는 내 대답을 편집했습니다 – Luca