精通CSS-背景圖像基礎

 1.背景圖像

只需將圖像作爲背景應用於主題元素

body {

        background-image:url(/img/pattern.gif);

         }

默認情況下,瀏覽器水平和垂直地重複平鋪圖像到整個頁面。

在頁面上使用垂直漸變。需要創建一個很高但很窄的漸變圖像,然後使其水平平鋪。

body{

        background-image:url(/img/gradient.gif);

        background-repeat:repeat-x;

        }

但頁面可能很長,這時候就需要添加一個背景顏色,背景圖像會出現在背景顏色上面,當圖像結束時,顏色就顯示出來了,如果選擇的背景顏色與漸變底部的顏色相同,那麼顏色和背景顏色之間的轉換就看不出來了。

  body {

     background-image:url(/img/gradient.gif);

     background-repeat:repeat-x;

     background-color:#ccc;

         }

還可以設置背景圖像的位置。假設要在站點的每個標題上添加一個項目符號,可以編寫下面這樣的代碼:

h1{

    padding-left:30px;

    background-image:url(/img/ss.gif);

   background-repeat:no-repeat;

   background-position: left center;

     }

2.圓角框

  在CSS3以前,我們需要通過背景圖像來製作圓角框的效果。

而在CSS3中的border-radius屬性,卻可以直接製造圓角框的效果。我們只需設置邊框角的半徑,瀏覽器就會實現這種效果。

.box {

       border-radius:1em;

       }

這是一個新屬性,對於他的實際實現方式還有爭議。所以在這個屬性得到廣泛使用之前,需要使用與瀏覽器相關的擴展調用它。當前,Firefox和Safari支持這個屬性,所以可以使用-moz和-webkit前綴。

.box {

      -moz-border-radius: 1em;

      -webkit-border-radius: 1em;

      border-radius:1em;

        }

  瀏覽器生產商一直在試驗CSS的新擴展。一些生產商率先實現了CSS的新特性,其他生產商還在努力。因此,爲了避免與其他用戶代理混淆或者破壞代碼的有效性,可以通過在選擇器,屬性或值上添加與廠商相關的前綴來調用這些擴展。例如,Mozilla使用-moz前綴,Safari使用-webkit前綴。IE,Opera和所有主流瀏覽器都有相似的前綴。可以使用這些前綴訪問每種瀏覽器特有的特性。

  通過這種機制,可以在新的CSS3特性成爲正式規範之前試用它們。

3.投影

    簡單的CSS投影技術,其原理是:將一個大的投影圖像應用於容器div的背景。然後使用負的外邊距便宜這個圖像,從而顯示數圖像。

    首先需要創建投影圖像,使用PS。創建一個新的PS文件,其尺寸與圖像的最大尺寸一樣。創建一個800*800像素的文件。然後打開背景層並且填充一種

顏色,投影將放在這種顏色上面。讓背景色保持白色。接着創建一個新的層並且填充上白色。然後,將這個層向左上方移動4或5個像素,然後對這個層應用4或5像素寬

的投影。保存並將其命名爲shadow.gif

  在HTML中的標記如下:

  <div class="img-wrapper"><img src="dunstan.jpg"  width="300" height="300" alt="dunstan prchard"/> </div>

  爲了產生投影效果,首先需要將投影圖像應用於容器div的背景。因爲div是塊級元素,所以他們會水平伸展,佔據所有可用空間。在這種情況下,我們希望div包圍圖像。可以顯式地設置容器div的寬度,但是這麼做會限制這種技術的用途。可以浮動div,讓它在現代瀏覽器上產生"收縮包圍"的效果。Mac上的IE 5.X不支持這種技術,可以對Mac上的IE 5.X隱藏這些樣式。

    .img-wrapper {

                 background: url(/img/shadow.gif)  no-repeat bottom right;

                 clear:right;

                 float:left;

                                }           

爲了露出投影圖像併產生投影效果,需要使用負的外邊距便宜這個圖像:

     .img-wrapper img {

                margin: -5px. 5px 5px -5px;

                                      }

還可以給圖像加上邊框和一些內邊框,從而產生類似照片邊框的效果

.img-wrapper img {

               background-color: #fff;

               border:1px solid #a9a9a9;

               padding:4px;

               margin:-5px 5px 5px -5px;

                             }

這種技術對於大多數符合標準的現代瀏覽器都是有效的。但是,在IE6中,還需要添加如下規則

     .img-wrapper {

               background:url(/img/shodow.gif)   no-repeat bottom right;

              clear:right;

              float: left;

              position:relative;

                             }

     .img-wrapper img{

                background-color:#fff;

               border:1px solid #a9a9a9;

               padding:4px;

               display:block;

               margin:-5px 5px 5px -5px;

               position:relative;

                      }

現在CSS3開始支持用box-shadow屬性,這個屬性需要4個值:垂直和水平偏移,投影的寬度(模糊程度)和顏色。

         img{

            box-shadow: 3px 3px 6px #666;

                 }

這在目前也是一個實驗性的CSS3屬性,所以目前需要使用Safari和Firefox擴展。不過,這個屬性可以很快就得到廣泛支持了

    img {

           -webkit-box-shadow :  3px 3px 6px #666;

          -moz-box-shadow:3px 3px 6px #666;

          box-shadow:3px 3px 6px #666;

              }

4.不透明度

     大多數現代瀏覽器支持CSS不透明度已經有相當一段時間了。假設要彈出一個警告消息,他應該覆蓋在現有文檔上面,同時你仍可以看到下面的東西

   .alert {

             backkground-color: #000;

             border-radius: 2em; 

             opacity:0.8;

             filter:alpha(opacity=80);  /*proprietary  IE code*/ 

              }

     CSS不透明度的主要問題是,除了對背景生效之外i,應用它的元素的內容也會繼承它。因此,上面的代碼會透過警告文本看到頁面上的文本。如果使用非常高的不透明度和高對比度的文本,這可能不是問題。但是,如果不透明度地,框的內容就難以辨認。RGBa就是爲了解決這個問題而設計的。

       .alert {

             background-color:rgba(0,0,0,0.8);

             border-radius:2em;

               } 

     最後一個數字是十進制的不透明度,所以0.8表示這個背景的不透明度是80%,換句話說,透明度是20%。值爲1表示100%不透明度,值爲0表示完全透明。

     PNG透明度

    PNG文件格式最大的優點之一是它支持alpha透明度。這這可以使設計具備真正的創意。但是,IE6不直接支持PNG透明度,而IE7和IE8支持。對於IE的老版本,有2種解決方法。

   在IE6支持PNG透明度的方法是使用專有的AlphaImageLoader

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章