frameborder 属性仅对 和 标签有效,值必须为字符串 "0" 或 "1";在 中可继承设置,但现代开发应优先使用 css 的 border: none 替代。

frameborder 属性确实能控制框架窗口之间是否显示边框,但它只在特定标签和上下文中生效——不是所有“框架”都认它,也不是写上就一定起作用。
哪些标签支持 frameborder?
仅限 <frame> 和 <iframe></iframe> 两个标签。其他元素(比如 <div>、<code><section></section>、<article></article>)加了也完全被忽略。
-
<frame src="a.html" frameborder="0">→ 有效,隐藏该 frame 的边框 -
<iframe src="b.html" frameborder="0"></iframe>→ 有效,隐藏 iframe 外围边框(仍被主流浏览器支持) <div frameborder="0">... → 无效,解析器直接跳过,无样式影响 <h3> <code>frameborder的值只能是 "0" 或 "1"它不是布尔值,也不是 CSS 属性,规范只接受字符串
"0"或"1"(数字 0/1 多数浏览器也兼容,但建议统一用字符串)。- ✅ 推荐:
frameborder="0"、frameborder="1" - ❌ 风险写法:
frameborder=false、frameborder="no"、frameborder="none"—— 在旧版 IE 或严格模式下可能回退为默认值"1",边框意外出现 - ⚠️ 注意:
frameborder="0"不等于border: none;前者是 HTML 属性,后者是 CSS 规则,优先级不同
在
<frameset></frameset>中设置会批量影响子<frame><frameset></frameset>已废弃(HTML5 不再支持),但老系统维护中仍常见。它的frameborder具有继承性:-
<frameset cols="50%,50%" frameborder="0"> <frame src="a.html"> <frame src="b.html"> </frameset>→ 两个<frame>都无边框 - 子
<frame frameborder="1">可覆盖父级设置,但容易漏写,导致局部边框“消失得莫名其妙” - IE 曾支持
framespacing和bordercolor控制间距与颜色,但 Firefox/Chrome 完全不识别,跨浏览器行为极不可靠
现代开发请用 CSS 替代
frameborder对
<iframe></iframe>,border样式优先级高于frameborder。混用反而增加调试成本。- ✅ 推荐:
<iframe src="x.html" class="no-border"></iframe>+.no-border { border: none; } - ✅ 进阶控制:
border-radius、box-shadow、outline: none(防聚焦虚线)都能用 CSS 精确处理 - ⚠️ 框架类 UI 库(如 Bootstrap)常给
iframe设默认边框,需显式重置:iframe { border: 0 !important; }
真正容易被忽略的是:即使你写了
frameborder="0",只要某处 CSS 里有iframe { border: 1px solid #ddd; },边框就一定会显示——它不是“开关”,而是“后备选项”。- ✅ 推荐:











