
当在搜索栏中输入内容后,原本横向排列的 YouTube 视频卡片变为垂直堆叠,根本原因是 JavaScript 中错误地将匹配项的 display 值设为 "list-item",破坏了原有 inline-block 布局流。
当在搜索栏中输入内容后,原本横向排列的 youtube 视频卡片变为垂直堆叠,根本原因是 javascript 中错误地将匹配项的 `display` 值设为 `"list-item"`,破坏了原有 `inline-block` 布局流。
要让搜索过滤后的视频列表保持与初始一致的网格式排版(多列并排、不换行),关键在于严格复用原始 CSS 中定义的显示模式。你已为 .item 元素设置了 display: inline-block,因此 JavaScript 在显示匹配项时,必须显式恢复该值,而非使用语义无关的 "list-item"(它会触发块级行为并破坏内联流)。
以下是修正后的完整搜索函数:
function search_videos() {
const input = document.getElementById('search-bar').value.toLowerCase();
const items = document.getElementsByClassName('item');
for (let i = 0; i <p>✅ <strong>关键改进点:</strong> </p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill10649" title="YouTube 脚本生成"><img
src="https://img.php.cn/upload/skill/001/246/273/6adaf20dbae7c507.jpg" alt="YouTube 脚本生成" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill10649" title="YouTube 脚本生成" class="overflowclass">YouTube 脚本生成</a>
<p class="overflowclass">输入视频主题、关键词、产品信息,输出 5 分钟 YouTube 维修科普视频的完整 10 列分镜脚本。 严格对齐运营 Excel 蓝本:Section/镜号/景别/画面内容/参考画面(生图prompt)/ 台词初版中英/二次验证中英/建议画面。符合北美机械师口语习惯,内置 FridayParts 技术准确性规范,...</p>
</div>
<a rel="nofollow" href="/xiazai/skill10649" title="YouTube 脚本生成" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div>
- 使用
'inline-block'替代'list-item',确保元素继续参与同一行内联格式化上下文; - 用
const声明变量,提升代码安全性与可读性; - 提前缓存
item引用,避免重复访问 DOM 属性; - 合并条件逻辑为一行三元表达式,更简洁清晰。
⚠️ 注意事项:
- 若后续需支持响应式断行(如小屏幕下自动换行),建议改用
display: flex或 CSS Grid 配合媒体查询,而非依赖inline-block; -
innerHTML全文匹配可能误判(例如搜 “the” 会命中所有含 “the” 的标题/ID/日期),如需精准匹配标题,应单独提取文本进行比对; - 首次加载时,确保所有
.item元素默认display为inline-block(可通过 CSS 重置或初始化脚本保障)。
通过以上调整,搜索过程将不再干扰视觉布局——匹配项始终以 270px 宽度、顶部对齐、左对齐的方式水平排列,完全复现初始效果。










