HTML文件名必须用kebab-case,因URL规范及部分服务器(如旧版IIS、GitHub Pages)对下划线路径响应异常致404;实操需全小写、用-连接、禁用空格/中文/特殊符,首页统一为index.html。
HTML 文件名必须用 kebab-case(短横线分隔),不能用 snake_case(下划线)或 PascalCase。这是因 URL 规范和多数 Web 服务器默认不区分大小写但会把下划线当字面字符处理,而部分旧版 Windows IIS 或静态托管服务(如 GitHub Pages)对含下划线的路径响应异常,导致 404。
实操建议:
立即学习“前端免费学习笔记(深入)”;
- 连接,例如:user-profile.html、faq-section.html
用户页面.html、user profile.html、user_profile.html)index.html,不要写成 Index.html 或 home.html
MultiViews,否则 user.html 可能被误匹配为 user.json 响应这类命名违反 BEM 或语义化原则,本质是描述样式而非功能或内容角色。一旦 CSS 重构(比如把 red 改成橙色),class 名就失效;更严重的是,它阻碍可访问性(AT 工具无法理解)和团队协作(新人看不懂 left 是布局位置还是内容状态)。
实操建议:
立即学习“前端免费学习笔记(深入)”;
btn-primary 代替 red-btn,用 sidebar-nav 代替 left-nav
id 应唯一且稳定,适合锚点或 JS 操作目标,例如:id="contact-form",而非 id="form1"
div1、section-a、my-div 都不可维护block__element--modifier 格式,例如:card__title--large
要加,而且必须加。浏览器原生不校验 data- 属性,但多个第三方库(如 Alpine.js、HTMX)或自定义脚本可能监听相同名称(如 data-toggle),不加前缀极易冲突。
实操建议:
立即学习“前端免费学习笔记(深入)”;
data-myapp-modal-target、data-shop-cart-item-id
data-abc_user_id ❌,应为 data-abc-user-id ✅script type="application/json" 块data- 存敏感信息(如 token、用户邮箱),它在 HTML 源码中完全可见最常见的错误是 name 值重复导致多选框/单选组失效,或 for 属性与 id 值不一致导致点击
label 不触发控件聚焦——这直接影响可访问性和移动端体验。
实操建议:
立即学习“前端免费学习笔记(深入)”;
name 决定提交字段键名,同组单选/复选框必须相同:name="payment-method",每个选项用不同 value
label for="xxx" 必须与对应控件的 id="xxx" 完全一致(包括大小写),且 id 在整个页面唯一id 直接包裹控件: 虽可用,但屏幕阅读器兼容性差,iOS VoiceOver 可能跳过id 和关联 label,否则 WCAG 2.1 1.3.1 条款不通过命名不是风格偏好问题,而是影响部署稳定性、协作效率和无障碍支持的实际约束。最常被忽略的是文件名大小写和 data-* 前缀——它们不出错时没人注意,一出就是线上 404 或 JS 逻辑静默失效。