程序代碼
現在,我們必須再增加四個 div ,這會在將來創建圓角的時候用到。之後必須給每個加載一個類 .corner,同時也標識一個類來指定它們格子的位置。
程序代碼
程序代碼
.corner {position:absolute;width:17px;height:17px;} 如果您是第一次切割矩形圓角,那麼寬度跟高度很可能會不一樣 (咄!)。現在開始定義 div 容器樣式:
程序代碼
.roundedBox {position:relative;}任何定義有類 .roundedBox 的元素內,絕對定位元素都會相對於這個元素進行定位,而不是標籤 body。 我們也必須設置一些padding值,如果沒有設置,圓角將會覆蓋我們的文本,這肯定不是我們想要的效果。 重要提示:top 和 bottom padding 值必須 等價於圓角的 height。left 和 right padding 值必須等價於圓角的寬度。 正如您已經知道的,我的圓角寬度跟高度是相等的,因此,四個邊角的padding 值也是相等的:
程序代碼
.roundedBox {position:relative; padding:17px; margin:10px 0;} 也通過 margin 給我們的 div 流出了一定的空隙 最後,讓我們對沒有圓角作單獨定義 我們會對每個圓角作絕對定位設置,並且定位背景圖的位置 (根據我們的 sprite):
程序代碼
.roundedBox {position:relative; padding:17px; margin:10px 0;}.corner {position:absolute; width:17px; height:17px;}.topLeft {top:0; left:0; background-position:-1px -1px;}.topRight {top:0; right:0; background-position:-19px -1px;}.bottomLeft {bottom:0; left:0; background-position:-1px -19px;}.bottomRight {bottom:0; right:0; background-position:-19px -19px;} 您可能已經注意到,我們的樣式仍然還沒有下載 sprite。我們一般不會去定義它們的原因是,我們會使用另外的方法。圓形盒模型 1 (藍色)HTML 代碼:
程序代碼
程序代碼
#type1 {background-color:#CCDEDE;} 之後,通過定義 .corner 類來協助圓形盒模型載入 Sprite 樣式:
程序代碼
#type1 {background-color:#CCDEDE;}#type1 .corner {background-image:url(../images/corners-type1.gif);} 好了,我們的第一個圓角矩形大功告成了!預覽圓角矩形模型1 (藍色)圓形盒模型 2 (綠色) / 圓形盒模型 3 (紫色) 模型1,模型2跟模型3的唯一差別就是它們的顏色,所以我們也僅僅只修改這些。模型 2 (綠色) HTML 代碼:
程序代碼
程序代碼
#type2 {background-color:#CDDFCA;}#type2 .corner {background-image:url(../images/corners-type2.gif);} 預覽圓角矩形模型2 (綠色)模型 3 (紫色) HTML 代碼:
程序代碼
程序代碼
#type3 {background-color:#D3CADF;}#type3 .corner {background-image:url(../images/corners-type3.gif);}預覽圓角矩形模型 3 (紫色),都學會了嗎?好,現在我們再進一步學習。模型 4 (紅色邊框) 模型4 跟模型1、2、3又有什麼區別呢?邊框和顏色,讓我們來解決這些因素吧。HTML 代碼:
程序代碼
程序代碼
#type4 {background-color:#CCACAE; border:1px solid #AD9396;}#type4 .corner {background-image:url(../images/corners-type4.gif);} 好了,這個就是截圖效果。我們的邊角還不能正確地覆蓋 #type4 邊框。所以我們必須矯正它們的定位來覆蓋早期的定位樣式。讓我們做到這一點:
程序代碼
#type4 {background-color:#CCACAE; border:1px solid #AD9396;}#type4 .corner {background-image:url(../images/corners-type4.gif);}#type4 .topLeft {top:-1px;left:-1px;}#type4 .topRight {top:-1px; right:-1px;}#type4 .bottomLeft {bottom:-1px; left:-1px;}#type4 .bottomRight {bottom:-1px; right:-1px;} 好了,這就是我們完成的模型 4。預覽圓角矩形模型4 (紅色邊框). We are almost there, don』t quit now :p模型 5 (垂直漸變) 好了,模型5會需要更多的工作量,我們應該這樣:1. 修改上下邊角的高度 (由漸變度決定(depending on your gradient))。 2. 修改上下邊角的背景圖定位 (由漸變度決定)。 3. 通過重複平鋪 1px 的背景圖片來創建容器 div 的漸變效果。 4. 值得注意的是,我們必須給內容設置一個大小,或者給容器設置一個最小高度(由漸變度決定)。 讓我們開始吧。HTML 代碼 (跟之前的一樣):
程序代碼
程序代碼
#type5 {background:#FECBCA url(../images/roundedbox-type5-bg.png) repeat-x 0 0; min-height:110px;} 給容器設置的背景顏色是從底部邊角中吸取的。然後將背景圖片按 x 方向進行重複。最後給它設置一個最小高度,正如之前所說的,漸變才不會洩露。最後來加上所有的邊角 (將文件的類型修改為 .png 格式的圖片,為的是能得到更好的漸變質量):
程序代碼
#type5 {background:#FECBCA url(../images/roundedbox-type5-bg.png) repeat-x 0 0; min-height:110px;}#type5 .corner {background-image:url(../images/corners-type5.png);}現在,我增加上邊角的高度 (這是由漸變最後抵達的顏色位置決定的):
程序代碼
#type5 {background:#FECBCA url(../images/roundedbox-type5-bg.png) repeat-x 0 0; min-height:110px;}#type5 .corner {background-image:url(../images/corners-type5.png);}#type5 .topLeft,#type5 .topRight {height:140px;} 最後,我糾正下下邊角的背景圖定位:
程序代碼
#type5 {background:#FECBCA url(../images/roundedbox-type5-bg.png) repeat-x 0 0; min-height:110px;}#type5 .corner {background-image:url(../images/corners-type5.png);}#type5 .topLeft,#type5 .topRight {height:140px;}#type5 .bottomLeft {background-position:-1px -142px;}#type5 .bottomRight {background-position:-19px -142px;}
全部完成! 預覽圓角矩形模型 5 (垂直漸變)IE6 版本 這項技術在這一令人討厭的瀏覽器中是有問題的。我們必須給容器 (.roundedBox, or #type1, #type2, 等等) 確定寬度跟高度。如果您沒有定義它,那麼它會洩露到盒模型之外。 使用 IE6 條件式註釋法來定義它。最後的想法 希望這項技術對您會有幫組,並且不會顯得太難。垂直漸變、透明的角落,只要多加練習,您的腦袋會變得更加好用,也會更加容易定義樣式。
文章提供 BAYSTARS DESIGN網頁設計公司


