2009-06-07 8 views
2

ユーザーが独自のHTML応答を挿入できるアプリを継承しました。私は、このアプリケーションのグローバルなCSSファイルとグローバルなJSファイルを設定することしかできません。最近、ユーザーの一部は、<marquee><blink>タグと呼ばれる古代の悪を目覚めさせました。CSSで[マーキー]タグを無効にするにはどうすればよいですか?これは可能ですか?

私は入力や出力でタグを取り除くことはできませんが、少なくともCSSルールでそれらを解除できますか?

blink { 
    text-decoration: none; 
} 

上記の点滅効果を取り除くと、CSSでマーキー効果を無効にする同様の方法はありますか?

最悪の場合、marquee { display:none }を使用できますが、ユーザーがそのタグに有用な情報を入れることがあります。私は「マーキーであれば定義上重要ではない」と主張するのに十分なレバレッジを持っていない(これは十分に近似している)。

技術的ではない問題を技術的な問題で解決しようとしていますが、呼び出されないエビルの(内部の)ユーザーを教育すべきですか?


明らかに、CSSのみのクロスブラウザソリューションはありません。私は、より厳しい、JSの方法に行く必要があります - おそらくマーキーをスパンに置き換えます。

+6

タグを削除できません。それは大規模なセキュリティホールではありませんか? – RichieHindle

+1

私が思い出したように、!importantは逆の順序でバインドし、global!importantで重要なuser!importantよりも優先されます。これは、トップレベルのCSSファイル(ブラウザ設定に存在)がすべての設定をオーバーライドできるように行われました。これは通常、アクセシビリティのためにブラウザを設定する際に使用されます。 – Joshua

+0

@ RichieHindle:それは本当です。私ができるならば、私はそのように行くだろう。しかし、いくつかのprobemsは本質的に技術的ではありません(例えば、 "いいえ、私たちはその変化を承認しません。私たちのファンタジーの世界では何も起こり得ないから") – Piskvor

答えて

3

CSSのクロスブラウザソリューションはありません。関連するプロパティは、CSS3に初めて導入されました。いくつかのユーザエージェントはすでにそれを実装しているかもしれません。たとえば、Webkitでは-webkit-marquee* propertiesを使用できます。 Geckoでは、-moz-binding: noneの設定も同様ですが、その本来の目的は異なります。

それ以外の場合は、すべてmarqueeを非表示にすると、ユーザーはその要素を使用しないようになります。これは、もはや動作していないためです。

とにかく、DOM内のmarqueeすべての要素をJavaScriptでspanに置き換えることができます。

4

これは機能しますか?

marquee { overflow:visible; -moz-binding:none; } 

詳細については、Disabling deprecated html using cssを参照してください。

+0

+1を参照するには、 ' –

関連する問題