CSS Sprites 圓角制作教程

第二步: HTML 代碼
首先,我們會(huì)給容器 div 一個(gè) .roundedBox
類 :
<div class="roundedBox"></div>
現(xiàn)在,我們必須再增加四個(gè) div ,這會(huì)在將來創(chuàng)建圓角的時(shí)候用到。之后必須給每個(gè)加載一個(gè)類 .corner,同時(shí)也標(biāo)識(shí)一個(gè)類來指定它們格子的位置。
<div class="roundedBox">
<strong>My content in roundedBox Type 1</strong>
<div class="corner topLeft"></div>
<div class="corner topRight"></div>
<div class="corner bottomLeft"></div>
<div class="corner bottomRight"></div>
</div>
一切搞定? 嗯,讓我們把注意力再轉(zhuǎn)移到 CSS 代碼上來。
第三步: CSS 代碼
如你所知, (或者您會(huì)在這里快速學(xué)習(xí)到) 絕對(duì)定位元素通常都依照相對(duì)定位的父元素進(jìn)行定位。. If this element is not defined, they will take as their parent relatively-positioned element, the body tag.如果這個(gè)父元素?zé)o法界定,那么它會(huì)去最近作相對(duì)定位的那個(gè)父元素,直至 body 標(biāo)簽。 哈?! - 好了,如果到此為止您仍沒有掌握,不用擔(dān)心,我們將在第二部分了解它。(翻譯得有點(diǎn)拗,附上原文:Ok, if you didn’t get this, don’t worry, you’ll catch it in an second.)
讓我們先來定義下所有的圓角:
所有的圓角都必須定義絕對(duì)定位,并且注明高度跟寬度。 我的圓角定義的寬度跟高度都是 17px.
.corner {
position:absolute;
width:17px;
height:17px;
}
如果您是第一次切割矩形圓角,那么寬度跟高度很可能會(huì)不一樣 (咄!)。
現(xiàn)在開始定義 div 容器樣式:
.roundedBox {position:relative;}
任何定義有類 .roundedBox 的元素內(nèi),絕對(duì)定位元素都會(huì)相對(duì)于這個(gè)元素進(jìn)行定位,而不是標(biāo)簽 body。 我們也必須設(shè)置一些padding值,如果沒有設(shè)置,圓角將會(huì)覆蓋我們的文本,這肯定不是我們想要的效果。 重要提示: top 和 bottom padding 值必須 等價(jià)于圓角的 height。left 和 right padding 值必須等價(jià)于圓角的寬度。 正如您已經(jīng)知道的,我的圓角寬度跟高度是相等的,因此,四個(gè)邊角的padding 值也是相等的:
.roundedBox {position:relative; padding:17px; margin:10px 0;}
我也通過 margin 給我們的 div 流出了一定的空隙
最后,讓我們對(duì)沒有圓角作單獨(dú)定義
我們會(huì)對(duì)每個(gè)圓角作絕對(duì)定位設(shè)置,并且定位背景圖的位置 (根據(jù)我們的 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;}
您可能已經(jīng)注意到,我們的樣式仍然還沒有下載 sprite。我們一般不會(huì)去定義它們的原因是,我們會(huì)使用另外的方法。
相關(guān)文章
使用css sprites來優(yōu)化你的網(wǎng)站在Retina屏幕下顯示實(shí)現(xiàn)原理與代碼
CSS sprites(CSS圖片精靈)已經(jīng)存在很久了。事實(shí)上,八年前就有CSS Sprites的詳細(xì)介紹。CSS Sprites為一些大型的網(wǎng)站節(jié)約了帶寬,讓提高了用戶的加載速度和用戶體驗(yàn),不需要2012-12-24css sprites技術(shù) CSS Sprites圖片切割術(shù)與圖片優(yōu)化深入理解
近段時(shí)間一直在做前臺(tái)的一些東西,涉及到很多div+css的問題,原來這個(gè)叫CSS Sprites技術(shù),我對(duì)前臺(tái)這些個(gè)東西比較感興趣,所以會(huì)去了解多一點(diǎn)2012-12-03網(wǎng)頁設(shè)計(jì)中的CSS Sprites技術(shù)介紹及其優(yōu)化方法
CSS Sprites 技術(shù)對(duì)于廣大的前端工程師來說應(yīng)該是一點(diǎn)也不陌生。這個(gè)被國(guó)內(nèi)開發(fā)者昵稱為CSS精靈 CSS雪碧的家伙到底解決了什么問題,我們又怎樣合理使用這個(gè)技術(shù)呢?下面讓我2012-05-31- CSS Sprites技術(shù)不新鮮,早在2005年 CSS Zengarden 的園主 Dave Shea 就在 ALA 發(fā)表對(duì)該技術(shù)的 詳細(xì)闡述 。原先只在CSS玩家之間作為一種制作方法流傳,后來出來個(gè) 14 Rules2011-08-02
什么是CSS Sprites(圖片合并)技術(shù) 圖文介紹
眾所周知,減少網(wǎng)站加載時(shí)間的最有效的方式之一就是減少網(wǎng)站的HTTP請(qǐng)求數(shù)。實(shí)現(xiàn)這一目標(biāo)的一個(gè)有效的方法就是通過CSS Sprites——將多個(gè)圖片整合到一個(gè)圖片中,然后再用CSS2011-06-21- CSS Sprites的目的就是通過整合圖片,減少對(duì)服務(wù)器的請(qǐng)求數(shù)量,從而加快頁面加載速度2011-05-11
CSS Sprites簡(jiǎn)介以及優(yōu)缺點(diǎn)
阿里媽媽UED談CSS Sprites技術(shù).2009-10-20- 論壇上提到這樣的問題:“css中用一張背景圖做頁面的技術(shù)有什么優(yōu)勢(shì)?” 簡(jiǎn)單介紹一下 CSS Sprites 的優(yōu)點(diǎn): 當(dāng)用戶往U盤中拷200張圖片,會(huì)等很久。但是2009-06-21
- CSS Sprites技術(shù)不新鮮,早在2005年 CSS Zengarden 的園主 Dave Shea就在ALA發(fā)表對(duì)該技術(shù)的詳細(xì)闡述,原先只在CSS玩家之間作為一種制作方法流傳,后來出來個(gè)14 Rules for Fa2009-04-24
- 網(wǎng)頁制作Webjx文章簡(jiǎn)介:在google中搜索一下css sprites這個(gè)名稱,會(huì)查出很多信息,并且隨著SEO越來越被人們重視,采用這種技術(shù)來進(jìn)行圖片優(yōu)化的網(wǎng)站越來越多,國(guó)內(nèi)幾家大2009-04-02