2012-03-23 4 views
13

제목은 기본적으로 모두를 말합니다. 다른 하나는 각각의 모든 국가에서 동일하게 유지하지만, 여전히 사를 선언하고 있습니다 -호버상의 여러 배경 중 하나만 변경하십시오.

#element { 
    background: url(image.png) no-repeat center center, 
       linear-gradient(to top, #86a53c, #516520); 
} 

#element:hover { 
    background: url(image.png) no-repeat center center, 
       linear-gradient(to top, #A0C153, #516520); 
} 

#element:active { 
    background: url(image.png) no-repeat center center, 
       linear-gradient(to top, #516520, #A0C153); 
} 

당신이 볼 수 있듯이, 배경 이미지 변화의 한 : 여기


은 예입니다
번!

그래서 배경 중 하나만 변경하고 다른 하나는 그대로두면 되나요? 반복해서 다시 선언하지 않아도됩니까?

다른 CSS 배경 속성 (반복, 위치 등)을 별도로 설정할 수 있다는 것을 알고 있습니다. 이것은 단지 간단한 예입니다 ...

+2

을 의미 i 답을 느끼는 것이 될 것입니다 실망 ... –

+0

좋은 질문, 그러나 아마 어떤 –

+0

이 @ WesleyMurch - 더 이상 그렇지 않습니다. 내 대답을 보라. –

답변

1

이 CSS 변수를 수있게되었습니다 :

#element { 
    --gradient: linear-gradient(to top, #86a53c, #516520); 

    background: url(image.png) no-repeat center center, 
       var(--gradient); 
} 

#element:hover { 
    --gradient: linear-gradient(to top, #A0C153, #516520); 
} 

행동에 여기를 참조하십시오 https://jsfiddle.net/22zu6oaq/

+0

예, 이것에 대한 가장 좋은 점은 이전에 제기 된 우려 사항 인 "구문 및 캐스케이드의 관점에서 어떻게 재생 될 것인가"에 직면했다는 것입니다. [Here 's] (http://stackoverflow.com/questions/40010597/how-do-i-apply-opacity-to-a-css-color-variable/41265350#41265350) 심지어 더 미친 예. – BoltClock

5

아니, 아직 죄송합니다. 이것은 구문과 캐스케이드의 관점에서 어떻게 재생 될지 확신 할 수 없지만 제안 할 수있는 추가 기능처럼 들립니다.

+0

구문이 무엇인지 상상할 수도 없습니다. 나는 처음에 여러 배경을 실제로 사용하는 사람을 매우 질투합니다. IE7 지원에 여전히 묶여 있습니다. 점진적인 향상? 물론, 고객에게 그렇게 말하십시오. –

+0

적어도 실망 스럽다. 구문에 관해서 : 왜 배열과 같은 숫자를 사용하지 않습니까? 예를 들어'background-image-1','background-image-2' 등입니다. 이것은'box-shadow' 또는 여러 값을 취하는 다른 CSS 속성에도 유용합니다. 캐스케이드에 관해서는 : 나는 아무런 문제도 볼 수 없다. [IE의'background-position-x' 및'background-position-y']와 다른 점은 무엇입니까 (http://snook.ca/archives/html_and_css/background-position-x-y)? –

+1

'background-position :,, 0 ~ 20px,;'와 같은 구문을 사용하면 네 번째 배경의 위치를 ​​수정할 수있어 기쁩니다. – Pioul

관련 문제