115

IE7とIE8は疑似要素(eg::afterまたは::first-letter)のダブルコロン表記をサポートしておらず、最近のブラウザー:afterは下位互換性のためにシングルコロン表記(eg)をサポートしているため、シングルコロン表記のみを使用する必要があります。 IE8の市場シェアはごくわずかなレベルにまで低下し、コードベースに戻って検索/置換しますか?または、両方を含める必要があります。

.foo:after,
.foo::after { /*styles*/ }

IE8ユーザー(貧しい人々)を気にするなら、doubleを単独で使用するのはばかげているようです。

4

6 に答える 6

73

両方をコンマと組み合わせて使用​​しないでください。CSS 2.1準拠(CSS3対応ではない)のユーザーエージェントは、ルール全体を無視します。

ユーザーエージェントがセレクターを解析できない場合(つまり、CSS 2.1が無効な場合)、セレクターとそれに続く宣言ブロック(存在する場合)も無視する必要があります。

CSS 2.1は、セレクターのコンマ(、)に特別な意味を与えます。ただし、CSSの将来の更新でコンマが他の意味を取得する可能性があるかどうかは不明であるため、CSS 2.1ではセレクターの残りの部分が妥当に見える場合でも、セレクターのどこかにエラーがある場合はステートメント全体を無視する必要があります。

http://www.w3.org/TR/CSS2/syndata.html#rule-sets

ただし、

.foo:after { /*styles*/ }
.foo::after { /*styles*/ }

一方、これは必要以上に冗長です。今のところ、1コロン表記を使用できます。

于 2012-04-16T21:25:06.983 に答える
63

CSS3セレクターからREC :

この::表記は、疑似クラスと疑似要素の区別を確立するために、現在のドキュメントで導入されています。
既存のスタイルシートとの互換性のために、ユーザーエージェントは、CSSレベル1および2で導入された疑似要素(つまり、:first-line、:first-letter、:before、および:after)の以前の1コロン表記も受け入れる必要があります。
この互換性は、この仕様で導入された新しい疑似要素では許可されていません。

UAは下位互換性がなければならないため、CSS2.1にすでに存在する疑似要素には(のみ)1コロン表記を使用しても安全なようです。

于 2012-04-16T21:17:48.127 に答える
23

1つのコロンの使用を「安全」と見なすという点で、@mddwと@FelipeAlsにはまったく同意しません。

この「廃止されたとしても使用します」という考え方が、ブラウザベースのテクノロジの進歩と進歩が非常に遅い理由です。

はい、古い規格との互換性を維持したいと考えています。それに直面しましょう、それは私たちが配られてきた手です。ただし、これは、現在の標準を無視して非推奨の標準を優先することにより、開発に怠惰になる言い訳があることを意味するものではありません。

目標は、可能な限り多くのレガシー標準をサポートしながら、現在の標準への準拠を維持することです。

疑似要素:がCSS2と::CSS3で使用されている場合は、どちらか一方を使用しないでください。両方を使用する必要があります。

尋ねられた元の質問に完全に答えるために、以下は、バージョン2のレガシーサポートを維持しながら、CSS(バージョン3)の最新の実装をサポートするための最も適切な方法です。

.foo:after {
  /* styles */
}
.foo::after {
  /* same styles as above. */
}
于 2013-11-19T21:35:24.557 に答える
2

ただし、新しいjavascriptとCSSの両方にポリフィルを使用することがますます一般的になっているため、新しいダブルコロン(::)構文を使用し続け、必要な限り、古いブラウザーのポリフィルを維持することをお勧めします。

于 2016-06-16T03:01:43.890 に答える
1

Browser Statsによると、その価値については、IE 8.0は過去1年間に米国で1%未満に低下しました。

http://gs.statcounter.com/browser-version-partially-combined-market-share/desktop/united-states-of-america/#monthly-201512-201612

2015年12月、IE 8.0は市場の2.92%を占めていました。2016年12月、IE 8.0は市場の0.77%を占めていました。

その減少率では、古いバージョンのIEのサポートを停止し、PseudoElementsに::を使用し始めるのは最悪の考えではありません。

于 2017-01-26T16:12:44.167 に答える
0

両方の表記を含める方が確かに安全ですが、ブラウザが1つの表記を長い間ドロップすることはないので、1つだけで問題ありません(有効なCSS2です)。

個人的には、主に習慣によって、単一のコロン表記のみを使用します。

于 2012-04-16T21:08:16.460 に答える