2012-02-24 2 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

しかし、1つのバージョンが何千回も呼び出されているのはなぜですか?この例のソースは、ハイパフォーマンスWebサイトのSteve Soundersです。 – dublintech

+0

プロパティが上書きされると、ダイナミック式は存在しなくなるため、再呼び出しされることはありません。 – Alnitak

+0

2番目のアプローチでは、プロパティが1回オーバーライドされていると言っていますが、最初は上書きされるのではなく、常に設定されていますか? – dublintech

0

"スクリプトの場合、動的プロパティは、合法的なJScriptまたはMicrosoft Visual Basic Sc​​ripting 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