PIE的使用


實際上是指的是一個名為pie的htc文件,即pie.htc,使用CSS的behavior行為,可以調用此文件,然后讓IE也能實現一些常見的 CSS3效果,如圓角(border-radius),盒陰影(box-shadow),背景漸變(gradient),多圖片背景(multiple background images)。

    支持的主要CSS3屬性:
    1.border-radius圓角
        CSS代碼如下:
        .pie_radius{ width:250px;height:250px;background-color:#34538b;-moz-border-radius:10px;      -webkit-border-radius:10px;border-radius:10px;behavior:url(pie.htc);}
        html代碼如下:
        <div class="pie_radius"></div>
    2.box-shadow 盒陰影
        CSS代碼如下:
        .pie_box_shadow{width:250px;height:250px;background-color:#34538b;-moz-box-shadow:1px 3px 3px #666;-webkit-box-shadow:1px 3px 3px #666;box-shadow:1px 3px 3px #666;behavior:url(pie.htc);}
        html代碼如下:
        <div class=" pie_box_shadow"></div>
    3.gradient漸變
         CSS代碼如下:
        .pie_gradient{width:250px;height:250px;background-color:#9F9;background:-webkit-gradient(linear, 0 0, 0 bottom, from(#9F9), to(#393));background:-moz-linear-gradient(#9F9, #393);      -pie-background:linear-gradient(#9F9, #393);behavior:url(pie.htc);  }
        html代碼如下:
        <div class="pie_gradient"></div>
    4.問題說明:
       a. IE下這些CSS3效果實現是借助於VML,由VML繪制圓角或是投影效果的容器元素,然后這個容器元素作為目標元素的后兄弟節點插入,如果目標元素position:absolute 或是 position:relative,則這個css3-container元素將會設置與之一樣的z-index值,在DOM tree中,同級的元素總是后面的覆蓋前面的,所以這樣就實現了覆蓋,又避免了可能有其他元素正好插入其中。 所 以,問題來了,如果目前元素的position屬性為static,也就是默認屬性,則z-index屬性是沒有用的,無覆蓋可言,所以此時IE瀏覽器下 CSS3的渲染是不會成功的。要解決也很簡單,設置目標元素position:relative或是設置祖先元素position:relative並賦 予一個z-index值(不可為-1)。
        b.IE瀏覽器的behavior 屬性是相對於HTML文檔而言的,與CSS其他的屬性不一樣,不是相對於CSS文檔而言的。這使得使用pie.htc文件不怎么方變。如果絕對路徑於根目 錄,則CSS文件不方便移動;如果相對路徑與HTML文檔,則pie.htc文件在不同HTML頁面見的重用性大大降低。同時,諸如border- image后面的URL屬性路徑也不好處理。  
       c. 使用PIE實現IE下的CSS3渲染(其他方法也是一樣),只能使用縮寫的形式,例如圓角效果,我們可以設置border-top-left-radius表示左上圓角,但是PIE確實不支持這種寫法的,只能是老老實實的縮寫。
        d. 要想讓IE瀏覽器支持htc文件,需要一個有着”text/x-component” 字樣的content-type 頭部,否則,會忽視behavior。絕大數web服務器提供了正確的content-type,但是還有一部分則有問題。
        e.由於某種原因,您無法修改服務器配置(例如公用主機,或是空間服務商提供的服務器),您可以用一個PHP文件來間接調用htc文件。
            <?php  header( 'Content-type: text/x-component' );  include( 'pie.htc' );  ?>
        通過PHP文件來增加一個含有“text/x-component”字樣的Content-type頭,同時調用pie.htc文件。需要將pie.php和pie.htc放在同一個文件夾目錄下,同時CSS中的behavior寫法應該是:
              behavior: url(pie.php);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM