html怎么做网页框架_html网页框架搭建步骤【详解】

4次阅读

最简网页框架可用嵌入页面,需设宽高、去边框(frameborder=”0″和border:none)及隐藏滚动条(scrolling=”no”或overflow:hidden),但跨域受限;css grid更稳,用grid-template-areas或grid-template-columns定义区域,注意ie11兼容性;vue/react中/需在布局组件预判权限与路径;已废弃,禁用。

html怎么做网页框架_html网页框架搭建步骤【详解】

怎么用 <iframe></iframe> 做最简网页框架?

直接嵌入其他页面是最轻量的框架做法,适合后台管理页、仪表盘这类需要局部刷新的场景。但要注意:<iframe></iframe> 默认有边框、滚动条和空白间距,不加样式会显得很割裂。

  • 必须设 widthheight,否则高度塌陷——浏览器不会自动撑开
  • 去掉默认边框:加 frameborder="0"html5 中已废弃,但兼容性仍需写)+ CSS 的 border: none
  • 隐藏滚动条用 scrolling="no"(旧属性)或更可靠的 overflow: hidden 在父容器上
  • 跨域时 <iframe></iframe> 内内容无法被父页 js 访问,也拿不到 document.title 或尺寸

示例:

<iframe src="sidebar.html" width="200" height="600" frameborder="0" style="border: none;"></iframe>

display: grid 搭框架为什么比 Float 更稳?

用 CSS Grid 布局做响应式框架,核心是把页面切分成固定区域(比如 header / sidebar / main / footer),而不是靠浮动元素“挤”出来。它天然支持行列定义、对齐控制和显式尺寸约束。

  • grid-template-areas 是最直观的写法,但区域名不能含空格或特殊字符,比如 "header header" "nav main" "footer footer"
  • 侧边栏固定宽度 + 主内容自适应,推荐用 grid-template-columns: 240px 1fr,别用 auto——容易被内容撑变形
  • IE11 支持 Grid,但只认旧语法(-ms-grid),如果还要兼容,得额外写一遍,实际项目中多数已放弃
  • Grid 容器内子元素默认不继承 width: 100%,main 区域要显式设 width: 100% 否则文字会溢出

Vue/React 里用 <router-view></router-view><outlet></outlet> 当框架出口,要注意什么?

单页应用(SPA)的框架本质是“壳组件”套住路由内容,不是真嵌 HTML 文件。这时候框架逻辑在 JS 层,HTML 只剩一个挂载点。

立即学习前端免费学习笔记(深入)”;

  • Vue Router 的 <router-view></router-view> 必须放在有 name 的组件里才能命名视图,否则所有路由都挤进同一个出口
  • React Router v6 的 <outlet></outlet> 不接受 children,它只渲染当前匹配路由的 element,父组件里写死的内容会被完全替换
  • 导航守卫(如权限判断)要提前写在布局组件里,不能等 <outlet></outlet> 渲染完再检查——那时候页面已经闪了一下
  • 如果框架里有固定 Header,又想让某些页面(如登录页)不显示它,得用 useLocation() 判断路径,而不是靠条件渲染整个 Layout

为什么别用 <frameset></frameset><frame>

这两个标签在 html5 中已被完全移除,chrome/firefox/safari 都不再支持。即使你写进去,浏览器也会当作未知标签忽略,变成一无样式的文本块。

  • 错误现象:页面空白、控制台报 The element <frameset> is obsolete</frameset>,但没明确提示“不渲染”
  • 旧书或老教程里还提它,是因为上世纪 90 年代用它实现“左侧菜单不变、右侧内容变”的效果——现在用 <iframe></iframe> 或前端路由更可控
  • seo 极差:搜索引擎无法关联 frame 之间的语义,各 frame 页面被当成独立 URL 索引,权重分散
  • 移动端完全不可用:frame 尺寸无法响应式缩放,触摸事件经常错位

真正麻烦的不是“怎么搭”,而是“搭完要不要维护”。Grid 布局写一次能管三年,<iframe></iframe> 得操心跨域和高度同步,路由框架得处理加载状态和错误边界——选哪个,取决于你下周还想不想改它。

text=ZqhQzanResources