使用PIE兼容IE8--C3某些屬性(border-radius等)

最近發(fā)現(xiàn)一個用的特爽的文件 —— PIE.htc

因為需要圓角顯示頭像,又要兼容IE8,內(nèi)心是拒絕的,然后在網(wǎng)上搜了幾篇文,說的最多的是用ie-css3.htc和PIE.htc,一開始我是下載了ie-css3.htc,但是它實在是古老,而且支持的C3屬性也不多,后老我轉(zhuǎn)戰(zhàn),去看關于PIE的文章。

PIE currently has full or partial support for the following CSS3 features
  • border-radius
  • box-shadow
  • border-image
  • linear-gradient as background image
  • multiple background images
#myElement {

    background: #EEE;

    padding:2em;

    -moz-border-radius:1em;

    -webkit-border-radius:1em;

    border-radius:1em;

    behavior: url(PIE.htc);

}

無意中我去了PIE的官網(wǎng)css3pie.com,當時我還不知道這官網(wǎng)可以下載真正的PIE.htc,所有我一直停留在PIE作者的Github上github.com/lojjic/PIE,我下載了作者的項目,但是我特么發(fā)現(xiàn)并沒有出現(xiàn)PIE.htc這個文件!我甚至還問我朋友,當然,他們都不鳥我...我只能靠自己...在這之前我已經(jīng)下載了一個1.0版本的PIE.htc,但是我嫌棄他古老...而且結合作者的demo配上1.0版本的畫面實在是太丑了,我又回到了PIE的官網(wǎng),突然發(fā)現(xiàn)右側導航欄有“download”,臥槽...我這...我這眼睛醉了...我下載了2.1版本的,打開有PIE.htc?。?!非常開心然后結合作者的demo,在IE上看非常爽,但是,這文件是有了,但是這途中我也遇到過坑啊~~

首先1.0版本的,一定要把PIE.htc放到文件夾里在引用,不然沒效果

2.0版本的就不用一定要放一個文件夾內(nèi),但是它必須要與PIE_IE678.js這個文件放同一個文件夾下,否則也是沒有效果的,最重要的一點,差點忘記說...引用必須是以html文件為準的相對路徑,不是css

我看作者的Github的評論,里面的人說要跟position:relative, z-index:1 一起使用,但是我不用也有效果...
還有就是作用于:hover的話會有延遲


天了嚕~~~
今天發(fā)現(xiàn)一個問題...behavior: url(PIE.htc)要用在眼看到的元素...怎么說呢,看下面:
需求:我想用一個盒子包住圖片,盒子是圓形,設置了overflow:hidden,圖片就會顯示圓形

html
      <div class="a">
          <div class="c">
              ![](./wubiaoti7.png)
          </div>
      </div>
css
 .a .c  {
        behavior: url(PIE-2.0beta1/PIE.htc);
        border-radius: 50%;
        position: relative;
        z-index: 1;
        overflow: hidden;
        width: 20px;
        height: 20px;
        margin-right: 8px;
    }
    .c img { width: 100%; height: 100%; display: block;}

在IE7的效果是這樣的

我看了自己樣式很久,再看看之前自己寫的demo,終于被我發(fā)現(xiàn)哪里不對勁了!
先文字解析,之后再扔demo自己理解
是這樣的:我用一個盒子包住圖片,然后border-radius:50%,肉眼看以為這個盒子就是個圓了,但是實際上即使加上了behavior: url(PIE-2.0beta1/PIE.htc)但是這個盒子還是個正方形

demo解釋:

html
      <div class="anthor">
          <span>
              ![](./wubiaoti7.png)
          </span>
      </div>
css
    .anthor span {
        behavior: url(PIE-2.0beta1/PIE.htc);
        border-radius: 50%;
        position: relative;
        z-index: 1;
        overflow: hidden;
        width: 100px;
        height: 100px;
        background: pink;
        border: 1px solid green;
    }
    .anthor span img {
        width: 50px;
        height: 50px;
        display: inline-block;
        position: absolute;
        top: -20%;
        right: 0;
    }

效果圖

為了證明 這個盒子還是個正方形 我給盒子加了邊框并且定位,圖片top:-20%時向上移,超出部分隱藏,正常來說我們只能看到盒子(圓形),但是卻看到圖片在一個盒子(正方形)的右上角

top:0 時的效果

所以,behavior: url(PIE-2.0beta1/PIE.htc)要對著想要變圓的元素用,不然沒反應...

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實...
    香橙柚子閱讀 24,099評論 8 183
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,251評論 25 708
  • 范季康閱讀 128評論 0 0
  • 今日一直在做套路換套路的活動,無時間閱讀。 先打卡,忙完來補上。
    就看看吧閱讀 145評論 0 0
  • 圖文/圓善 三小時,三天,三年,三十年, 出個門,離個別。四海為家。 仿若一瞬,恍如隔世。 遠了過往,老了時光, ...
    圓善閱讀 478評論 0 3