Chrome と Opera には、PseudoElements の getComputedStyle() にバグがあります。
のスタイル#elem::before
が に設定されている場合、{display: none;}
または{content: none}
コンテンツが単に設定されていない場合、どちらも #elem の計算されたスタイルを返します。
しかし、実際には問題ありません。コンテンツが含まれていない PseudoElement はdisplay: none
表示されないため、コンテンツを表示するように設定する必要があります。
cssの内容は引用符で囲む必要があります:
div::before { content: "something"} or { content: "" } // empty string.
.getComputedStyle(...).content を取得すると、空の文字列ではなく、2 つの引用符を含む文字列が取得されます。そうすれば、両方のケースを区別できます。
javascriptでcontent 値を使用する場合は注意してください。二重引用符で囲む必要があります。
CSS3 と同様に、指定されたコンテンツを明示的に「なし」に設定できます。
#elem::before { content: none } // without quotes!
この場合、FF と IE はnoneを返し、Chrome と Opera は実際には何も返しません。
ここで JSFidlleを使用して、すべてのケースをテストします。