Как отключить тег [marquee] с помощью CSS?Возможно ли это?
Вопрос
Я унаследовал приложение, в которое пользователи могут вставлять свои собственные HTML-ответы.Я могу установить только глобальный CSS-файл и глобальный JS-файл для этого приложения.Недавно некоторые пользователи пробудили древнее зло, известное как <marquee>
и <blink>
Теги.
Я не могу удалить теги при вводе или выводе, могу ли я, по крайней мере, отключить их с помощью правила CSS?
blink {
text-decoration: none;
}
Вышесказанное избавляет от эффекта мигания, есть ли аналогичный способ отключить эффект выделения с помощью CSS?
Если дело дойдет до худшего, я мог бы использовать marquee { display:none }
, но иногда пользователи помещают полезную информацию в этот тег;У меня нет достаточных рычагов воздействия, чтобы утверждать: "если это marquee, то это неважное значение по определению" (что было достаточно хорошим приближением в других местах).
Или я пытаюсь решить нетехническую проблему техническими средствами, и я должен рассказать (внутренним) пользователям о Зле, на которое нельзя ссылаться?
Как оказалось, не существует кроссбраузерного решения, основанного только на CSS;Мне придется пойти более сложным путем JS - возможно, заменить marquee на span.
Решение
Для этого не существует кроссбраузерного решения, основанного только на CSS.Соответствующие свойства были впервые представлены в CSS3.Некоторые пользовательские агенты, возможно, уже внедрили это.Например, в Webkit вы можете использовать -webkit-marquee*
свойства.В Гекконе, установив -moz-binding: none
работает так же хорошо, хотя его первоначальное назначение иное.
В противном случае, скрывая все marquee
s вообще указывает пользователям не использовать этот элемент, поскольку он больше не работает.
В любом случае, вы можете заменить все marquee
элементы в DOM для span
s с помощью JavaScript.
Другие советы
Работает ли это у вас?
marquee { overflow:visible; -moz-binding:none; }
Для получения дополнительной информации посетите Отключение устаревшего html с помощью css.