1

HTML の言語切り替えの簡単なコード サンプルを次に示します。CSS は span 要素を分離し、その間にドットを表示する必要があります。

 <html>
      <head>
        <style type="text/css">
            .languageSwitch span:before {
                content: "•";
                padding: 0 4px;
                font-weight: normal;
            }
            .languageSwitch span:first-child:before {
                content: "";
                padding: 0;
            }
            .languageSwitch .current {
                font-weight: bold;
            }
        </style>
      </head>
   <body>
    <div class="languageSwitch">
      <span><a href="?lang=de">Deutsch</a></span>
      <span class="current">English</span>
      <span><a href="?lang=fr">français</a></span>
    </div>
   </body>
  </html>

これは Firefox では問題なく動作しますが、Internet Explorer 9¹ は単に :before ディレクティブを無視します。「開発者ツール」CSS ダイアログでは、「コンテンツ」プロパティも表示されません。私はウェブ全体を検索しました。IE 8 には疑似要素の問題がありますが、IE 9 はそれらを認識しているはずであり、これは「古い」CSS 2 です。

誰かがこれが失敗する理由 (IE 9 のバグ?) または構文がどのように見えるかについての手がかりを持っていますか?


1) 明確にするために: バージョン 9.0.8112.16421 / “Updateversion” 9.0.6 (KB2675157)

4

2 に答える 2

2

Doctypeを確認してください。jsfiddleでは、これはIE9で正常に機能します:http://jsfiddle.net/4nGW9/。IE8もこれを処理する必要があります。

于 2012-07-05T07:55:21.410 に答える
2

IE9ではドットがきれいに見えます。正確なバージョンはあなたのものです。私のコードの唯一の違いは、上部にある有効なHTML5Doctypeです。

有効なDoctypeがないと、IEはページのレンダリングをquirksモードに切り替えるか、IE8 /IE7のレンダリングモードを切り替えて、最初の子や生成されたコンテンツなどの疑似セレクターを処理しない可能性があります。

こちらのブラウザであなたのページをご覧ください。

于 2012-07-05T07:56:09.320 に答える