1

この text-shadow の例のテキストは IE 11 では表示されませんが、FF と Chrome では表示されます。

http://codepen.io/maxnguyen/pen/

caniuse.comによると、IE は IE 10 以降、text-shadow を完全にサポートしています。IE11 で動作するように CSS を変更する方法はありますか?

<div id="box">
  <p id="flashlight">
    <span id="flash">MAX</span>
    <span id="light">NGUYEN</span>
  </p>
</div>

CSS:

html {
  overflow: hidden; /*FF fix*/
  height: 100%;
  font-family: Geneva, sans-serif;
  background: hsl(210, 30%, 0%) radial-gradient( hsl(210, 30%, 20%), hsl(210, 30%, 0%));
}

body {
  margin: 0;
  width: 100%;
  height: 100%;
  text-align: center;

  display: flex;
  justify-content: center;
  align-items: center;
}

p {
    margin: 0;
}


/* box ------------------------------------------------------ */

#box {
  text-align: center;
  font-size: 3em;
  font-weight: bold;
  -webkit-backface-visibility: hidden; /* fixes flashing */
}


/* flashlight ------------------------------------------------------ */

#flashlight {
  color: hsla(0,0%,0%,0);
  perspective: 80px;
  outline: none;
}


/* flash ------------------------------------------------------ */

#flash {
  display: inline-block;
  text-shadow: #bbb 0 0 1px, #fff 0 -1px 2px, #fff 0 -3px 2px, rgba(0,0,0,0.8) 0 30px 25px;
  transition: margin-left 0.3s cubic-bezier(0, 1, 0, 1);
}

#box:hover #flash {
   text-shadow: #111 0 0 1px, rgba(255,255,255,0.1) 0 1px 3px;
  margin-left: 20px;
  transition: margin-left 1s cubic-bezier(0, 0.75, 0, 1);
}


/* light ------------------------------------------------------ */

#light {
  display: inline-block;
  text-shadow: #111 0 0 1px, rgba(255,255,255,0.1) 0 1px 3px;
}

#box:hover #light {
  text-shadow: #fff 0 0 4px, #fcffbb 0 0 20px;
  transform: rotateY(-60deg);
  transition:         transform 0.3s cubic-bezier(0, 0.75, 0, 1), text-shadow 0.1s ease-out;
}
4

2 に答える 2

2

これは、IE がテキストに基本色を持たせたいために発生します。を使用text-shadowしてベース カラーを定義することもできます。

これを変更して、プロパティも定義できcolorます。

#flash {
  display: inline-block;
  text-shadow: #bbb 0 0 1px, #fff 0 -1px 2px, #fff 0 -3px 2px, rgba(0,0,0,0.8) 0 30px 25px;
  transition: margin-left 0.3s cubic-bezier(0, 1, 0, 1);
}

への変更

#flash {
  display: inline-block;
  color: #bbb;
  text-shadow: #fff 0 -1px 2px, #fff 0 -3px 2px, rgba(0,0,0,0.8) 0 30px 25px;
  transition: margin-left 0.3s cubic-bezier(0, 1, 0, 1);
}

最初のプロパティtext-shadowが現在割り当てられている場所。color

なぜこれが起こるのですか?

これが以前のバージョンの IE で発生したかどうかはわかりません。ただし、 MS text-shadow ジェネレーターでわかるように、chrome と FF でサポートされていないプロパティがあります。拡散距離。これは、IE が chrome や FF と同じ方法を使用していないことを示唆している可能性があります。
ただし、何かに影を付ける前にベースカラーを付けるのは理にかなっているようです。

追記事項

また、すべてをサポートすることをお勧めし-webkit- ます。たとえばtransition、クロムでは でのみサポートされてい-webkit-transitionます。

jsフィドル

于 2013-11-29T13:17:57.310 に答える
0

これは非常にトリッキーな問題で、簡単な html ファイルを ie10 または ie11 で開くと、すべてのテキスト シャドウが表示されますが、何らかのエラー手段が表示されていても、アプリがテキスト シャドウをサポートしていません。 text-shadow テキストの下の赤い線。

これにはメタタグを変更するだけです...これらを使用してください

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> // ie supports
<meta name="viewport" content="width=device-width, initial-scale=1">// for responsive
于 2014-12-05T06:52:35.927 に答える