javascript - 为什么 <marquee> 被弃用,什么是最好的选择?

标签 javascript html css marquee

较长时间我对 HTML 标签感到好奇 <marquee> .

您可以在 MDN specification 中找到:

Obsolete This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

W3C wiki :

No, really. don't use it.

我搜索了几篇文章,发现了一些关于 CSS 相关替换的提及。 CSS 属性如:

marquee-play-count
marquee-direction
marquee-speed

但看起来,它们不起作用。它们是 2008 年规范的一部分, 但他们在年份被排除在外 2014

W3 联盟提出的一种方法是使用 CSS3 animations ,但对我来说似乎比易于维护复杂得多 <marquee> .

还有很多JS alternatives ,其中包含大量源代码,您可以将它们添加到您的元素中并使它们变得更大。

我总是读到这样的东西:“永远不要使用选取框”、“已经过时”。我不明白为什么。

那么,有人可以向我解释一下,为什么 不推荐使用 marquee,为什么使用它如此“危险”以及什么是最简单的替代

我找到了一个 example , 看起来很好。当您使用良好浏览器支持所需的所有前缀时,您有大约 20-25 行 CSS,其中 2 个值是硬编码的(开始和停止缩进),具体取决于文本长度。这个解决方案不太灵活,你不能用它来创建自下而上的效果。

最佳答案

我认为您不应该移动内容,但这并不能回答您的问题...看看 CSS:

.marquee {
    width: 450px;
    line-height: 50px;
    background-color: red;
    color: white;
    white-space: nowrap;
    overflow: hidden;
    box-sizing: border-box;
}
.marquee p {
    display: inline-block;
    padding-left: 100%;
    animation: marquee 15s linear infinite;
}
@keyframes marquee {
    0%   { transform: translate(0, 0); }
    100% { transform: translate(-100%, 0); }
}

这是 codepen .

编辑:

这是从下到上 codepen .

关于javascript - 为什么 <marquee> 被弃用,什么是最好的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31951282/

相关文章:

javascript - 用 child 包裹一组元素

javascript - Node.js - performance.now 不是函数

javascript - 如何将使用 jQuery 编辑的 HTML 表格保存到本地存储?

java - Web 脚本中的 Alfresco 节点锁定

html - 我想要有人解决我的查询,我想要 2 行 3 张图片

javascript - 在 Bootstrap 多选中使用 onChange

jquery - 将 .live ("click"与彼此内部的元素一起使用时,如何仅引用一个元素?

javascript - Safari 上的 Font-Awesome onclick 问题,适用于 Chrome 和 Firefox

html - 将 svg 图案添加到 border-image 属性

html - 在中心对齐 div 不起作用