2009-06-07 2 views
2

Ich habe eine App geerbt, in die Benutzer ihre eigenen HTML-Antworten einfügen können. Ich kann nur eine globale CSS-Datei und eine globale JS-Datei für diese App festlegen. Vor kurzem haben einige der Benutzer ein uraltes Übel geweckt, bekannt als die <marquee> und <blink> Tags.Wie deaktiviere ich [Marquee] -Tag mit CSS? Ist das möglich?

Ich kann die Tags nicht auf Eingabe oder Ausgabe entfernen, könnte ich sie mit einer CSS-Regel zumindest unscharf machen?

blink { 
    text-decoration: none; 
} 

Die oben wird der Blinkeffekt zu befreien, gibt es eine ähnliche Art und Weise der Marquee-Effekt mit CSS zu deaktivieren?

Im schlimmsten Fall könnte ich marquee { display:none } verwenden, aber manchmal geben die Benutzer nützliche Informationen in diesem Tag; Ich habe dort nicht genug Hebelkraft, um zu argumentieren, "wenn es ein Festzelt ist, ist es definitionsgemäß unwichtig" (was an anderer Stelle eine gute Annäherung war).

Oder versuche ich, ein nicht-technisches Problem mit technischen Mitteln zu lösen, und sollte ich die (internen) Benutzer auf die Übel erziehen, die nicht aufgerufen werden?


Wie sich herausstellt, gibt es keine browserübergreifende CSS-Lösung; Ich muss die härtere, JS Art und Weise gehen - wahrscheinlich den Titel durch span ersetzen.

+6

Sie können Tags nicht entfernen ?! Ist das nicht ein massives Sicherheitsloch? – RichieHindle

+1

Wie ich mich erinnere, bindet wichtige in umgekehrter Reihenfolge und Sie können Benutzer mit wichtigen globalen! Dies wurde getan, damit die CSS-Datei der obersten Ebene (die sich in der Browser-Konfiguration befindet) jede Einstellung außer Kraft setzen kann. Dies wird normalerweise beim Konfigurieren des Browsers für die Barrierefreiheit verwendet. – Joshua

+0

@RichieHindle: Stimmt das; und wenn ich könnte, würde ich diesen Weg gehen. Allerdings sind einige Probleme nicht technischer Natur (wie "nein, wir werden diese Änderung nicht billigen, da in unserer Fantasy-Welt nichts Schlimmes passieren kann"). – Piskvor

Antwort

3

Es gibt keine CSS nur Cross-Browser-Lösung dafür. Die relevanten Eigenschaften wurden erstmals in CSS3 eingeführt. Einige Benutzeragenten haben es möglicherweise bereits implementiert. In Webkit können Sie beispielsweise -webkit-marquee* properties verwenden. In Gecko funktioniert auch die Einstellung -moz-binding: none, obwohl ihr ursprünglicher Zweck anders ist.

Sonst zeigt das Ausblenden aller marquee s Benutzer an, dieses Element nicht zu verwenden, da es nicht mehr funktioniert.

Wie auch immer, Sie können alle marquee Elemente im DOM zu span s mit JavaScript ersetzen.