無延遲翻滾的圖形/CSS混合風格的按鈕 | ||
作者: Builder.com
2004-04-06 11:50 AM |
||
在一個具有圖形背景的按鈕中添加CSS風格的文本,這種建立按鈕的方法結合了具有CSS翻滾(CSS rollover)標記的開發速度和效率,從而有效地提高按鈕外表圖像的三維效果。
相比于常規的圖形按鈕,這些圖形/CSS混合按鈕可易于建立和載入,因為你只需要為空白按鈕外面建立和載入一個圖像,而不是為每一個按鈕建立各自的圖像。 同一個圖像可以使用在網頁所有按鈕的背景。按鈕的文本標簽都是簡單的CSS風格文本。 預先載入的圖形/CSS混合風格的為數不多問題之一是對翻滾效果有所限制。使用這一技術的最簡單的方法是,指定CSS風格文本的翻滾效果,并使用所有翻滾狀態(rollover states)的相同按鈕外形圖像。這可以給你帶來快速、簡潔的翻滾效果,但在一定程度上限制了你的開發選項。 你也可以建立一些可交替使用的按鈕圖像并構建你的CSS規則,以為不同的翻滾狀態改變背景圖像。然而,這些方法給你帶來更多靈活的設計,但當瀏覽器首次載入圖像文件時,這些可交替使用的銨鈕圖像會出現延遲現象(除非你采用預先載入按鈕圖像的方法)。 預先載入圖像技術已被人熟知,而且也被人們所接受。問題是預先載入圖像增加了網頁載入和出現在訪問者瀏覽器的時間。用戶訪問的第一二分鐘非常關鍵,所以你無論如何都必須使得網頁的初始化更加快速。使用圖形/CSS混合按鈕可以減少圖像預先載入的時間,當然如果預先載入能夠消除,頁面的初始化則更加快速。 沒有延遲的翻滾──不使用預先載入圖像我已經找到一種創新的方法,這種方法可以滿足不同的翻滾狀態的可交替使用的按鈕圖像,而其中不需要任何圖像文件的載入。我第一次接觸這一技術是在網絡設計者捷克人 Petr Stanicek 的站點上的文章上發現的。 為了竦靡桓齙湫偷陌磁シ魴Ч閫ǔP枰⑷齠懶⒌耐枷瘢?b> 圖A 所示。其中一個是普通的按鈕,一個是懸浮狀態,以及一個是激活狀態。普通按鈕的圖像文件將成為初始化頁面載入的一部分,但其它兩個圖像將被分開地載入,這樣使得它們能夠在用戶的瀏覽器中得以使用。 無預先載入翻滾技術通過結合所有三個按鈕外表圖像而成為單一圖像文件而得以實現,如 圖B 所示。然而,不需要為每一翻滾狀態指定不同的背景圖像文件,你指定的是合成圖像的位置偏移量。在頁面初始化載入過程中,合成圖像文件能夠自動地載入,所以無需要預先載入;而且,在瀏覽器獲得不同圖像文件過程中也沒有時間上的延遲。 超大圖像與背景圖像位置偏移的結合使用可以使你有選擇性地為每一按鈕狀態顯示圖像的不同部分。按鈕文本的CSS框尺寸決定著顯示在瀏覽器的背景圖像的百分比。 對于這一技術,你必須清楚按鈕外表的確切水平和垂直尺寸,并正確使用這些尺寸,才能建立圖像文件和按鈕的CSS規則。 |
|
||||
一個使用過程的范例這里是一個代碼范例,范例的無預先載入的翻滾技術應用于圖形/CSS混合按鈕。在這種情況下,按鈕文本以無順序列表而標記,三個外形美觀的按鈕包含在具有ID menu的div中。首先,CCS為:
div#menu {
這里是這三個按鈕的HTML:
<div id="menu">
在以上代碼中,請注意到 div#menu li 規則指定了按鈕的高度和尺寸。指定 line-height 以匹配按鈕的高度,以確保文本能垂直地放置在中央。 background-position 屬性控制著背景圖像的左上角的位置。 在 div#menu li 規則中,與 width: 100% 和 height: 100% 聯合在一起的 display: block 屬性,能夠使得按鈕框內而不只是文本被點擊。 最后,在獨立按鈕狀態規則中,比如 div#menu lia:link , color 和 font-weight 屬性建立了文本翻滾效果,同樣 background-image 和 background-position 也為背景圖像實現了相同的功能。將懸浮狀態設置為 background-position: 0px -30px 能夠讓背景圖像增加到30象素,以致于頂端按鈕外表被隱藏。同樣,將激活狀態設置為 background-position: 0px -60px ,可以將背景圖像象素提高得更多。 background-image 需要在每一規則中不斷地重復。 這一技術能夠讓你獲得具有傳統圖形按鈕的三維效果,并具有快速的CSS文本風格的混合按鈕。同樣,這一技術能夠讓你實現無延遲或者無圖像預先載入的圖形翻滾效果。 本文作者:Michael Meadhra在Web發展的最初階段就在這一領域從事開發。他出版的書籍比積累幾十種,包括即將上市的Osborne/McGraw-Hill發行的《如何用Dreamweaver MX 2004做到一切(How to Do Everything with Dreamweaver MX 2004)》。 |
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
