使用HTML marquee实现新闻文本滑块遇问题,请求排查修复
问题排查与修复
你的代码存在两个核心问题:
- 语法错误:在PHP字符串拼接中误用了
echo语句。echo是用于输出内容的命令,它不会返回任何字符串值,不能直接放在字符串连接的表达式里,这会直接导致代码运行报错。 - 不必要的HTML实体转义:原代码里的
<、"是HTML实体,但在PHP拼接HTML字符串时,直接使用正常的<、"即可,无需转义(除非你是要将这些实体作为文本输出到页面)。
修复后的代码
// 正确拼接HTML字符串 $html = '<marquee behavior="slide" direction="left">' . $row['title'] . '</marquee>'; // 输出最终的HTML内容 echo $html;
额外建议:替代过时的<marquee>标签
<marquee>是HTML的过时标签,虽然部分浏览器仍支持,但兼容性和可维护性较差。推荐使用现代CSS动画实现相同效果,示例如下:
// 输出CSS动画实现的滚动新闻 $html = ' <style> .news-slider { overflow: hidden; white-space: nowrap; width: 100%; } .news-slider__content { display: inline-block; animation: slideLeft 12s linear infinite; } @keyframes slideLeft { 0% { transform: translateX(100%); } 100% { transform: translateX(-100%); } } </style> <div class="news-slider"> <span class="news-slider__content">' . $row['title'] . '</span> </div>'; echo $html;
内容的提问来源于stack exchange,提问作者helder ventura
相关产品推荐
相关产品推荐

