在單個HTML元素上利用CSS2.1實現擁有3張背景圖片和2張內容圖效果,或者多重邊框的效果。這種漸進增強的方式適用于所有支持CSS2.1偽元素及其定位屬性的所有瀏覽器。不需要CSS3的支持。
支持的瀏覽器:Firefox 3.5+, Safari 4+, chrome4+, opera10+, IE8+是如何實現的呢?
從本質上講,我們所創建的偽對象(:before和:after)跟我們在對待HTML元素嵌套關系是相同的。但他們相對于嵌套使用的HTML元素而言具有其獨特的優勢——不具有語義化。
當使用多背景或者多重邊框的時候,我們需要將偽元素層的內容利用絕對定位固定在HTML元素內容的后面。
并非真實的內容被偽元素所包含進行定位。這意味著他們能在“父”元素范圍內隨意拉伸的同時而不會影響其內容。這可以任意組合絕對定位的top、right、bottom、left、width和height的值,主要關鍵是他們的組合性能是靈活的。
可以達到什么效果?
僅需要依賴于一個HTML元素和相關的圖片就可以創建類似于多背景顏色、多背景圖、背景圖片剪輯、圖片翻轉、使用圖片邊框的可擴展的盒模型、浮動的虛假列(小志注:后面會提到的三列等高效果)、在盒模型外的圖片、顯示在外面的多邊框,以及其他流行的效果等。可能需要2張額外的內容圖片在生成的內容中。
在使用CSS2.1的多背景和使用CSS2.1的多邊框演示頁面中將會展示如何使用CSS2.1偽對象的技術實現這些流行的效果。
大部分的結構都包含子元素。因此,往往很多時候,你將有可能通過父元素的第一個子元素(設置是最后一個子元素)的偽元素來展示更多的效果。此外,還可以通過:hover對樣式產生一些復雜的交互效果的變化。
示例代碼:多背景圖片
使用這種技術我們可以重現類似于Silverback網站中只使用一個HTML元素的多背景圖片效果。
該元素擁有自己的背景圖片和需要填充的空間。將該元素相對定位后作為其偽元素的絕對定位參考點。使用正值的z-index將有助于偽元素選擇合適的z-index值(小志注:對于這句的翻譯思考了很久一直沒能選擇合適的詞來表達,主要的意思根據下面的代碼我們可以看到是將偽元素的z-index值設置比元素自身的小即可,最好是用負值)。
新聞熱點
疑難解答