html 中 marquee 是早期用来实现文字或者图片滚动效果的标签,它属于非标准遗留标签,虽然现在主流浏览器仍然可以识别运行,但是在 html 官方标准里面已经不推荐继续使用,很多老网站公告栏跑马灯效果就是依靠 html 中 marquee 实现,这个标签自带多个属性,可以控制滚动方向滚动速度循环次数滚动延迟还有滚动区域宽高,新手很容易把 marquee 当成标准 html 标签,实际上它最早是 IE 浏览器私有标签,后来被其他浏览器兼容,现代正式项目更推荐使用 css 动画或者 javascript 来实现同类滚动效果,因为 marquee 属性在不同浏览器表现会有差异,移动端适配也不稳定,不过学习旧网页代码或者维护老项目的时候,依然需要掌握 html 中 marquee 各个属性的含义和用法。
html 中 marquee 核心属性对照表
| 属性名称 | 作用 | 可选值说明 |
|---|---|---|
| direction | 设置滚动方向 | left right up down,默认是 left 向左滚动 |
| scrollamount | 设置每一次移动的像素距离,数值越大滚动越快 | 纯数字,单位像素 |
| scrolldelay | 每一次滚动间隔毫秒数,数值越大滚动越慢 | 纯数字,单位毫秒 |
| loop | 设置滚动循环次数,默认无限循环,值为数字 | 数字,比如 3 代表滚动 3 次停止 |
| width | 滚动区域宽度 | 数字或者百分比 |
| height | 滚动区域高度 | 数字或者百分比 |
| behavior | 滚动模式 | scroll 循环滚动 alternate 来回滚动 slide 滚动一次停止 |
| bgcolor | 滚动区域背景颜色 | 颜色名称或者色值 |
| hspace | 水平外边距 | 像素数值 |
| vspace | 垂直外边距 | 像素数值 |
各个属性详细说明
direction 这个属性决定滚动行进方向,left 是从右侧往左侧滚动,right 是从左侧往右侧滚动,up 是从底部向上滚动,down 是从顶部向下滚动,做上下滚动公告的时候就会用到 up 和 down。
scrollamount 控制单步移动距离,比如 scrollamount 等于 5,代表每一次跳动移动 5 像素,数值调大滚动速度明显变快,数值调小滚动就会平缓。
scrolldelay 是两次滚动动作之间等待时间,单位是毫秒,scrolldelay 等于 100,就是间隔 100 毫秒执行一次滚动,如果这个数值设置过小,滚动会非常快速,还可能造成页面卡顿。
behavior 三种模式区分,scroll 是默认模式,内容滚动到边界之后重新从头循环滚动,alternate 是碰到边界之后反向来回滚动,slide 是内容滚动到对面之后直接停止,不会循环。
loop 属性如果不填写,html 中 marquee 默认无限循环滚动,填写数字之后,滚动达到指定次数就会停止,适合只需要滚动一次或者固定次数的提示内容。
width 和 height 用来限定 marquee 滚动容器大小,如果不设置,容器会根据内容自动撑开,有时候会撑破页面布局。
使用注意要点
html 中 marquee 属于废弃标签,不属于 html5 标准规范,新项目不推荐使用,原因是语义缺失,移动端部分新版浏览器兼容性存在风险,并且无法精细控制动画,想要平滑滚动,现在一般使用 css animation 或者 transform 实现跑马灯效果。
marquee 标签内部可以放置文字图片链接,也可以嵌套其他 html 标签,但是复杂嵌套之后,不同浏览器滚动表现容易出现偏差。
不要把 marquee 属性和 css 属性混淆,marquee 的这些参数是写在 marquee 标签本身的属性,不是 css 里面的样式属性。
【常见问题】
问题 1 html 中 marquee 为什么现在不推荐使用
回答 1 html 中 marquee 属于早期非标准遗留标签,不在 html5 官方标准里面,html 中 marquee 属性兼容性和移动端表现不稳定,正式项目推荐改用 css 动画实现滚动效果。
问题 2 html 中 marquee 怎么实现来回滚动
回答 1 html 中 marquee 想要来回滚动,需要设置 behavior 属性值为 alternate,配合 direction 属性调整初始方向,html 中 marquee 属性 alternate 模式就会碰到边界反向滚动。
问题 3 html 中 marquee 滚动速度由哪两个属性控制
回答 1 html 中 marquee 滚动速度主要由 scrollamount 和 scrolldelay 两个属性控制,scrollamount 控制每次移动距离,scrolldelay 控制间隔时间,调整这两个 html 中 marquee 属性就能改变滚动快慢。
问题 4 html 中 marquee 可以只滚动一次就停止吗
回答 1 html 中 marquee 可以设置 loop 属性等于 1,html 中 marquee 属性 loop 设置成数字之后,滚动达到次数就停止,也可以搭配 behavior 为 slide 实现滚动一次停止效果。
【免责申明】 本文内容仅为 html 中 marquee 属性的旧标签知识科普,marquee 属于非标准遗留标签,浏览器后续版本有可能调整兼容策略,现代开发请优先采用标准 css 方案,本文不替代官方标准文档。


