首頁 >web前端 >前端問答 >css表達式是什麼

css表達式是什麼

青灯夜游
青灯夜游原創
2021-07-06 16:37:573653瀏覽

css表達式就是css屬性後使用expression()連接一段JavaScript表達式,css屬性的值是JavaScript表達式的結果;語法格式「css屬性:expression(JavaScript表達式);」。

css表達式是什麼

本教學操作環境:windows7系統、CSS3&&javascript1.8.5版、Dell G3電腦。

IE5及其以後版本支援在CSS中使用expression,用來把CSS屬性和Javascript腳本關聯起來,這裡的CSS屬性可以是元素固有的屬性,也可以是自訂屬性。

css表達式就是在css屬性後面使用expression()連接一段JavaScript表達式,css屬性的值是JavaScript表達式的結果。

在表達式中可以直接引用元素本身的屬性和方法,也可以使用其他瀏覽器物件。這個表達式就似乎是在這個元素的一個成員函數中一樣。

是不是感覺上面的文字有點晦澀?沒有關係,你只需要知道:我們可以透過expression把Javascript腳本寫放在css檔案中,透過它來實現一些很方便的功能與效果。

表達式應用:

1、賦予元素固有屬性賦值  下面的實例是依照瀏覽器的大小來安置一個元素的位置。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>mid.lt263.com/mb</title>
<style type="text/css">
#myDiv {
position: absolute;
width: 100px;
height: 100px;
background:#c00;
left: expression(document.body.offsetWidth - 180   "px");
top: expression(document.body.offsetHeight - -80   "px");
text-align:center;
line-height:90px;
color:#fff;
}
</style>
</head>
<body>
<div id="myDiv">mb5u.com</div>
</body>
</html>

2、給元素自訂屬性賦值

我們看下面的例子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>mid.lt263.com/mb</title>
<style type="text/css">
a {star:expression(this.onFocus=this.blur())}
</style>
</head>
<body>
<a href="#" _fcksavedurl="#">模板天下 - mid.lt263.com/mb
</p>
</body>
</html>

說明:裡面的star就是自己任意定義的屬性,你可以隨自己喜好另外定義,接著包含在expression()裡的語句就是JS腳本,在自訂屬性與expression之間可別忘了還有一個引號,因為實質還是CSS,所以放在style標籤內,而非​​script內。這樣就很輕易地用一句話實現了頁面中的連結虛線框的消除。需要引起你非凡重視的:若不是非常非凡的需要用到expression,一般不建議使用expression,因為expression對瀏覽器資源要求比較高。

註:

CSS表達式是動態設定CSS屬性的強大(但危險)方法。 Internet Explorer從第5個版本開始支援CSS表達式。在下面的範例中,使用CSS表達式可以實現隔一個小時切換一次背景顏色:

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

#如上圖所示,expression中使用了JavaScript表達式。 CSS屬性是根據JavaScript表達式的計算結果來設定。 expression方法在其它瀏覽器中不起作用,因此在跨瀏覽器的設計中單獨針對Internet Explorer設定時會比較有用。

      表達式的問題在於它的計算頻率比我們想像的還要多。不只是在頁面顯示和縮放時,就是在頁面滾動、甚至移動滑鼠時都會要重新計算一次。給CSS表達式增加一個計數器可以追蹤表達式的計算頻率。在頁面中隨便移動滑鼠都可以輕鬆達到10000次以上的計算量。

      減少CSS表達式計算次數的方法就是使用一次性的表達式,它在第一次運行時將結果賦給指定的樣式屬性,並用這個屬性來取代CSS表達式。如果樣式屬性必須在頁面週期內動態地改變,使用事件句柄來取代CSS表達式是一個可行辦法。如果必須使用CSS表達式,一定要記住它們要計算成千上萬次並且可能會對你頁面的效能產生影響。

(學習影片分享:css影片教學

以上是css表達式是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn