使用 css3 transform 屬性來(lái)變換背景圖的方法

使用 css3 transform 屬性可以輕易的旋轉(zhuǎn),傾斜,縮放任何元素。目前即使沒(méi)有任何前綴也可以在絕大部分瀏覽器上很好的使用。
#myelement { -webkit-transform: rotate(30deg); transform: rotate(30deg); }
這個(gè)聽(tīng)起來(lái)很贊。然而,這個(gè)屬性旋轉(zhuǎn)了整個(gè)元素,包括他的內(nèi)容、邊框、背景圖。如果你只是想旋轉(zhuǎn)它的背景圖而不選旋轉(zhuǎn)內(nèi)容的話(huà),應(yīng)該怎么做呢?或者你只想旋轉(zhuǎn)內(nèi)容,而不旋轉(zhuǎn)背景圖,這個(gè)又該怎么做呢?
目前 W3C 沒(méi)有關(guān)于如何旋轉(zhuǎn)背景圖的提案。我覺(jué)得這個(gè)是非常常見(jiàn)的使用場(chǎng)景,我深信最終也會(huì)出來(lái)相相關(guān)提案,但這對(duì)當(dāng)前就想要實(shí)現(xiàn)這個(gè)效果的開(kāi)發(fā)者沒(méi)有什么意義。
幸運(yùn)的是,我們找到一個(gè)解決方式。這個(gè)方式本質(zhì)上,是將背景圖應(yīng)用到某個(gè)元素的 before 或者 after 這種偽類(lèi)元素上而不是應(yīng)用到元素本身。然后在偽類(lèi)元素獨(dú)立的使用 transform 屬性。
僅僅變換背景
這個(gè)元素可以使用任何樣式,但一定要設(shè)置 position 屬性,因?yàn)槠鋫晤?lèi)元素會(huì)基于它來(lái)定位。如果不想背景撐到元素外,那就要設(shè)置 overflow: hidden。
#myelement { position: relative; overflow: hidden; }
現(xiàn)在我們可以創(chuàng)建一個(gè)絕對(duì)定位的偽類(lèi)元素來(lái)實(shí)現(xiàn)變換背景。為了確保他會(huì)低于元素內(nèi)容顯示,需要設(shè)置 z-index: -1。
#myelement:before { content: ""; position: absolute; width: 200%; height: 200%; top: -50%; left: -50%; z-index: -1; background: url(background.png) 0 0 repeat; -webkit-transform: rotate(30deg); transform: rotate(30deg);}
需要注意的是,在變換的過(guò)程中,你需要去調(diào)整偽類(lèi)元素的 width,height,position 屬性。例子:假如偽類(lèi)元素使用了一張可重復(fù)的圖片做背景,那么旋轉(zhuǎn)區(qū)域就必須大于父元素,這樣才可以在旋轉(zhuǎn)過(guò)程中覆蓋整個(gè)父元素。
在變換的元素上實(shí)現(xiàn)固定背景
所有主元素的變換操作都會(huì)影響到偽類(lèi)元素. 假如偽類(lèi)元素不想要變換操作時(shí),我們就需要撤銷(xiāo)這個(gè)變換, 例子:當(dāng)一個(gè)父元素旋轉(zhuǎn)了 30 度,那么偽類(lèi)元素需要相反方向旋轉(zhuǎn) 30 度,來(lái)使偽類(lèi)元素回退到固定位置。
#myelement { position: relative; overflow: hidden; -webkit-transform: rotate(30deg); transform: rotate(30deg); } #myelement:before { content: ""; position: absolute; width: 200%; height: 200%; top: -50%; left: -50%; z-index: -1; background: url(background.png) 0 0 repeat; -webkit-transform: rotate(-30deg); transform: rotate(-30deg); }
再次強(qiáng)調(diào),你需要對(duì)偽類(lèi)元素的寬高及定位屬性進(jìn)行調(diào)整來(lái)確保它可以完全覆蓋主元素
總結(jié)
以上所述是小編給大家介紹的使用 css3 transform 屬性來(lái)變換背景圖的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
CSS3實(shí)現(xiàn)的全屏背景圖片縮小漸變切換效果源碼
這是一款純CSS3實(shí)現(xiàn)的全屏背景圖片縮小漸變切換效果源碼,頁(yè)面的背景圖可呈現(xiàn)定時(shí)漸變與切換效果。漸變大小縮放效果流暢自然,采用純css3技術(shù)控制切換效果。2016-06-22CSS的background屬性及CSS3的背景圖片設(shè)置總結(jié)
這篇文章主要介紹了CSS的background屬性及CSS3的背景圖片設(shè)置總結(jié),背景圖片的顯示區(qū)域和定位是非常值得注意的地方,需要的朋友可以參考下2016-06-13jQuery+CSS3實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊背景圖片向上拉伸切換特效源碼
jQuery+CSS3實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊按鈕背景圖片向上拉伸切換特效源碼是一款鼠標(biāo)點(diǎn)擊按鈕像拉窗簾一樣向上拉伸特效,通過(guò)點(diǎn)擊某一張圖片背景全屏展示,效果非常棒,有需要的朋友可以2016-06-01jquery+css3實(shí)現(xiàn)的網(wǎng)頁(yè)背景圖片固定內(nèi)容切換特效源碼
是一段實(shí)現(xiàn)了將不同的圖片固定在背景中,鼠標(biāo)下拉時(shí)切換圖片及圖片所對(duì)應(yīng)的相關(guān)內(nèi)容的效果代碼,唯一不同的是,圖片固定在背景上不動(dòng),本段代碼適應(yīng)于所有網(wǎng)頁(yè)使用,有興趣2016-03-22CSS3對(duì)背景圖片的裁剪及尺寸和位置的設(shè)定方法
這篇文章主要介紹了CSS3對(duì)背景圖片的裁剪及尺寸和位置的設(shè)定方法,在IE瀏覽器中要注意一下兼容性,需要的朋友可以參考下2016-03-07多重CSS背景動(dòng)畫(huà)實(shí)現(xiàn)方法示例
CSS背景動(dòng)畫(huà)很長(zhǎng)時(shí)間以來(lái)都是一個(gè)熱門(mén)話(huà)題,很多時(shí)候都是因?yàn)樾Ч貏e絢麗,而且不需要額外的技術(shù)。最近有人問(wèn)我是否可以給頁(yè)面上一個(gè)指定的元素安排多重背景動(dòng)畫(huà),答案是y2014-04-04css實(shí)現(xiàn)的鼠標(biāo)懸停360度背景圖片做動(dòng)畫(huà)旋轉(zhuǎn)效果
一款純css實(shí)現(xiàn)的一個(gè)鼠標(biāo)懸停背景圖片做動(dòng)畫(huà)旋轉(zhuǎn)效果,摒棄掉煩人的js2014-04-03css3實(shí)現(xiàn)背景圖片拉伸效果像桌面壁紙一樣
使用css3 屬性:background-size可以輕松實(shí)現(xiàn)像桌面壁紙一樣拉伸,下面為大家詳細(xì)介紹下具體的相關(guān)實(shí)現(xiàn)過(guò)程,有此需求的朋友可以參考下,希望對(duì)大家有所幫助2013-08-19css3背景圖片透明疊加屬性cross-fade簡(jiǎn)介及用法實(shí)例
據(jù)說(shuō)iOS6系統(tǒng)(iPhone5)增加了兩個(gè)CSS3屬性,一個(gè)是CSS3 filters – CSS3濾鏡另外一個(gè)是CSS3 Cross-fade – CSS3交叉淡入淡出,接下來(lái)為您介紹cross-fade屬性,感興趣的朋友2013-01-08CSS3系列教程:背景圖片(背景大小和多背景圖) 應(yīng)用說(shuō)明
背景圖片/紋理有很多種使用方式,常常用于為添加網(wǎng)站的最佳的界面美化?,F(xiàn)在它在CSS3中被重視,我們可以應(yīng)用多背景圖和背景圖片尺寸來(lái)實(shí)現(xiàn)更完美的效果,需要的朋友可以了解2012-12-19