<marquee> Использование / замена тегов HTML - PullRequest
11 голосов
/ 12 декабря 2010

Я знаю, что <marquee> теги - это зло.
Если прокручивать текст так плохо, то использование JS для получения того же эффекта не делает его лучше, верно?

И, предположим, я решил использовать прокручиваемый текст (вздох) , есть ли какой-то тип CSS (3?) Или HTML (5?), Способный сделать это технически правильным (то есть не рекомендуется) )

Если нет решения CSS / HTML, я должен использовать:

  • Javascript, который будет тяжелее загружать и может быть отключен (это за или против?), Но я получаю бонус за то, что W3C правильный и действительный, не осуждаемый и умный,

или я должен использовать

  • тег ненавистный <marquee> (), легкий (19 байт!), Полностью поддерживаемый всеми браузерами во всех режимах рендеринга и всеми типами документов (даже если так быть не должно), но устарела?

Спасибо.

P.S. Я думаю, что новостной тикер - это правильное применение для стиля выделения
P.P.S. Если кто-нибудь скажет мне, что если я не хочу использовать тяжелое решение Javascript, я должен использовать JQuery, потому что оно легкое, я буду снимать их в комментариях

Редактировать: я добавляю тег JQuery, так как это, кажется, лучший способ привлечь внимание многих экспертов по вопросам JS, и здесь он не совсем не связан.

Ответы [ 6 ]

6 голосов
/ 12 декабря 2010

Это не тот эффект, который плох. Проблема с метками marquee, blink и font заключается в том, что они передают представление, а не структуру вашего контента.

5 голосов
/ 12 декабря 2010

CSS3 имеет поддержку Marquee, но он поддерживается только в нескольких браузерах (насколько мне известно, Safari и Chrome - единственные)

http://www.w3.org/TR/css3-marquee/

Существует несколько JQueryплагины, которые это делают, но они идут за счет загрузки JQuery (26 КБ, тяжелее, чем решение только для HTML, но не то, что я бы назвал тяжелым)

http://plugins.jquery.com/plugin-tags/marquee

Конечно, выВы можете легко сделать это самостоятельно без JQuery, но, взглянув на эти плагины, вы можете получить идеи.

Другой вариант, который стоит рассмотреть, - это сделать небольшую анимацию Flash.

0 голосов
/ 12 февраля 2013

Недавно мне пришлось сделать этот эффект для клиента, и я использовал этот плагин, который очень прост в использовании:

Плагин jQuery Marquee на github

jQuery Marquee на plugins.jquery.com

0 голосов
/ 11 января 2013

Я искал наиболее эффективную и поддерживаемую кросс-браузерную реализацию marquee.По какой-то причине, даже реализация CSS-метки webkit является затруднительной.

Обычный подход заключается в использовании таймера (или реализации jQuery animate) для настройки свойства CSS-поля элемента.Это слишком глючно и очень неэффективно.Я придумал реализацию, которая использует CSS3-переходы для браузеров, которые его поддерживают и в других случаях анимируют свойство scrollLeft содержащего элемента.Это экспериментальная реализация, хотя она хорошо работает с IE7 +.Другие люди могут найти это полезным, https://github.com/gajus/marquee (демо https://dev.anuary.com/60244f3a-b8b2-5678-bce5-f7e8742f0c69/).

0 голосов
/ 13 декабря 2010

Вот код , который реализует элемент marquee в Firefox, он в основном делает это на JavaScript в любом случае, так что вы всегда можете просто адаптировать этот код и использовать его напрямую во всех браузерах.

Код может быть взломан так, чтобы выделение могло быть реализовано на любом элементе в Firefox, примененном через привязки CSS и XBL ( Пример только для Firefox ). Эквивалентом в IE будет поведение , и вы можете использовать CSS3 в Safari / Chrome, как предложил Нико, и вы не будете использовать презентационные материалы в своей разметке, но только вы можете знать, стоит ли это усилий .

0 голосов
/ 12 декабря 2010

Если вы уверены, что он работает на всех платформах, к которым вы стремитесь, и вам все равно, что говорит w3c, вы, безусловно, можете использовать тег marquee.Нет способа найти решение JavaScript, которое работает менее чем в 14 байтах.

Единственная неприятная вещь заключается в том, что причина, по которой все эти браузеры поддерживают все эти устаревшие элементы, которые, в данном случае, даже не являются частью какого-либо стандарта HTML, заключается в том, что все эти люди используют эти элементы и начинают ныть, когдановая версия больше не поддерживает их совместимый веб-сайт 1982 года.

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

...