Как отключить тег [marquee] с помощью CSS? Это возможно? - PullRequest
2 голосов
/ 07 июня 2009

Я унаследовал приложение, в которое пользователи могут вставлять свои собственные ответы HTML. Я могу только установить глобальный файл CSS и глобальный файл JS для этого приложения. Недавно некоторые пользователи пробудили древнее зло, известное как теги <marquee> и <blink>.

Я не могу удалить теги на входе или выходе, могу ли я хотя бы снять их с правила CSS?

blink {
    text-decoration: none;
}

Вышеприведенное избавляет от эффекта мерцания, есть ли аналогичный способ отключить эффект выделения с помощью CSS?

Если худшее приходит к худшему, я мог бы использовать marquee { display:none }, но иногда пользователи помещают полезную информацию в этот тег; У меня не хватает рычагов, чтобы спорить: «Если это шатёр, то он не важен по определению» (это было достаточно хорошим приближением для других).

Или я пытаюсь решить нетехническую проблему техническими средствами, и должен ли я информировать (внутренних) пользователей о зле, которое не должно быть вызвано?


Как выясняется, кросс-браузерного решения только для CSS; Мне придется пойти сложнее, JS - возможно, заменив шатер на span.

Ответы [ 2 ]

4 голосов
/ 07 июня 2009

Это у вас работает?

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

Для получения дополнительной информации Отключение устаревшего HTML с помощью css .

3 голосов
/ 07 июня 2009

Для этого не существует единственного кросс-браузерного решения CSS. Соответствующие свойства были впервые введены в CSS3 . Некоторые пользовательские агенты, возможно, уже реализовали это. Например, в Webkit вы можете использовать -webkit-marquee* свойства . В Gecko настройка -moz-binding: none также работает, хотя ее первоначальное назначение отличается.

В противном случае скрытие всех marquee указывает на то, что пользователи не должны использовать этот элемент, поскольку он больше не работает.

В любом случае, вы можете заменить все элементы marquee в DOM на span s с помощью JavaScript.

...