2011-10-20 26 views
11

Firefox 7以降でCSSアウトラインプロパティがレンダリングされる方法に少し困惑しています。 明らかにどこかに問題がありますが、見つけられません。Firefoxで正しく表示されないCSSアウトライン

他のすべてのメインブラウザ(Opera、Chrome、IE、Safari)でも正常に動作します。

参考用にいくつかのスクリーンショットを追加しました。 Firefoxのから1:

enter image description here

やChromeから他:XHTMLここ

form#commentform input:focus { outline: 2px outset #717377 } 

ます:ここで

enter image description here

は、CSSです

<form id="commentform"> 
     <div> 
     <label for="name"> 
      <strong> 
      Nom 
      <span id="sname"></span> 
      </strong> 
     </label> 
     <input type="text" tabindex="1" id="name" name="name" class="textbox" /> 
     </div> 
... 
</form> 

どうすればこの問題を解決できますか?

答えて

9

Firefoxのアウトラインはbox-shadow(内側ではありません)の周囲に描画されます。
したがって、CSSハックを使用してoutline-offset: -X(X =シャドウの長さ)の追加ルールを提供する必要があります。

+0

クール!できます。ありがとうございました。 Firefoxのような小さな問題については、ウェブ上の参考資料がありますか? – user706600

+0

おお! Operaのレンダリングが廃止されました!助言がありますか? – user706600

+0

@ user7私はあなたがFirefoxに独占的にそれを提供するためにCSSハックを使用する必要があると言ったように。 – Knu

3

こののバグは、Firefox 30:https://bugzilla.mozilla.org/show_bug.cgi?id=480888#c109で修正されます。

あなたは、複数のボックスシャドウを持つことができるので、あなたは、要素に別のボックスシャドウを適用することができるまで:

.element { 
    box-shadow: your values old box-shadow, 0 0 0 2px #717377; 
} 
関連する問題