5

ウェブサイトを開発しているときに、何か非常に奇妙なものを見つけました。画面の上部にdiv要素を表示しようとしているときに、古いバージョンのIEを除いて、どのブラウザーでも目的の結果が得られていないことに気付きました。いくつかの異なるコードをテストするために、障害のある行を削除する代わりに、「//」を使用してコメントアウトしました(cssで機能するかどうかはわかりません)が、互換性のあるブラウザーはコメントなしを使用しましたIEは「//」でマークされたコードを使用しました。コードは次のとおりです。

#ban-menu-div{
position:fixed;top:0;
//position:relative; //<-- IE keeps the banner with rel pos while the other
display:block;       //    browsers used fixed
margin:auto;
padding:0px;
width:100%;
text-align:center;
background:black;
}

つまり、基本的には、//を使用して、新しいブラウザに特定のコード行を無視するように指示し、古いバージョンのIEにそれを使用するように指示できるように見えますか?これが一般的な慣習である場合は、誰かが私に知らせてください。それは確かに古いブラウザのための開発を非常に簡単にします

4

2 に答える 2

8

//有効な CSS コメントではありません。

は有効なプロパティ名ではない//positionため、CSS を適切に解析するブラウザーは無視します (詳細はこちら、-> ->を参照してください)。//positionpropertyIDENT S*

これは、ジャンクが前に付いたプロパティを受け入れるというよく知られたバグのため、IE7 でのみ機能します。

機能するのはそれだけ//ではありません。IE7 では、ここに赤いテキストが表示されます。

body {
    !/!*//color: red;
}

*これは、たとえばIE7*display: inline;の回避策の一部として、最も一般的に悪用されます。display: inline-block

于 2012-06-27T03:12:56.177 に答える
0

単一の行またはブロックをコメントアウトして、正しい /* */ カップルを使用しないという誘惑に陥らないでください。Web サイト フォルダーにアクセスできる顧客は、これを使用して 1 行をコメント アウトすることを自分で選択しました。

//*  comment here   *//

実際、Chrome と Safari は、この行に続くものはすべて無視します。私はそれを「CSSキラー」と呼んでいます。:D

于 2016-02-17T13:13:56.377 に答える