2012-02-24 7 views
-2

이 CSS 표현한 시간 CSS 표현

P { 
    background-color: expression((new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00"); 
} 

이 시간

하지만이 방법의 수천을 호출 할 수 있습니다,

<style> 
P { 
    background-color:expression(altBgColor(this)); 
} 
</style> 
<script type="text/javascript"> 
function altBgColor(elem) { 
    elem.style.background = new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00"; 
} 
</script> 

그것을하지 않습니다 의미 의미합니다. 왜?

+2

누가 신경 쓰나요? CSS 표현을 전혀 사용하지 마십시오. – thirtydot

답변

0

무슨 일이 일어날 것으로 예상 않았다 멀리하려고?

동적 표현식을 처음으로 호출하면 해당 표현식을 포함하는 배경 속성을 덮어 씁니다.

+0

그러나 왜 한 버전은 수천 번까지 호출되며, 다른 버전은 수천 번까지 호출됩니다. 이 사례의 출처는 고성능 웹 사이트 인 Steve Sounders입니다. – dublintech

+0

일단 속성이 덮어 쓰게되면 동적 표현식이 더 이상 존재하지 않으므로 결코 다시 호출되지 않기 때문입니다. – Alnitak

+0

당신은 속성이 두 번째 접근법에서 한 번 덮어 쓰여지는 것을 말하고 있습니까? 처음에는 실제로 덮어 쓰지는 않지만 계속 설정되는 것은 아닙니다. – dublintech

0

"스크립팅의 경우 동적 속성은 합법적 인 JScript 또는 Microsoft Visual Basic Scripting Edition (VBScript) 문일 수 있습니다." MSDN라고합니다. JScript는 JavaScript가 아닙니다. 또한, 좋은 것은 모두 CSS 표현 :

1

변경 <style><script>

<script type="text/javascript"> 
    function altBgColor(elem) { 
     elem.style.background = new Date().getHours()%2 ? "#B8D4FF" : "#F08A00"; 
    } 
</script> 
+0

완료. 그러나 당신의 커미션은 답이 아닙니다. – dublintech