【Javaweb】html frame标签的使用 | 导航栏右侧内容的实现
问题的产生:
是我和同伴做了一个导航栏,但是我们不知道怎么实现右侧内容的切换

然后我们查了很多资料,但是有一些是垂直的,但是就如图可见,我们是水平的,那么怎么实现水平切换呢?
上网看到了frame标签,于是我们想试一试。
标签详解
示例
<iframe src="http://www.w3school.com.cn" name="iframe_a" width="800dx" height="800dx">
<p>Your browser does not support iframes.</p>
</iframe>
这里说明一下src的地址,注意相对路径和绝对路径

我需要它显示在导航栏右端,这里我们科普一些我用到的属性
属性
height 属性
规定 iframe 的高度
<iframe src ="http://www.w3school.com.cn" width="400px" height="500px">
marginheight 属性
规定iframe 的顶部和底部的空白边距,以像素计
<iframe src ="http://www.w3school.com.cn" marginheight="50px" width="400px" height="300px">
marginwidth 属性
规定 iframe 的左边和右边的空白编剧,以像素计
<iframe src ="" marginwidth="50px"width="400px" height="300px">
name 属性
规定 iframe 的名称,iframe 元素的 name 属性用于在 JavaScript 中引用元素,或者作为链接的目标;
<iframe src="/example/html/demo_iframe.html" name="iframe_a">
<p>Your browser does not support iframes.</p>
</iframe>
<a href="http://www.w3school.com.cn" target="iframe_a">W3School.com.cn</a>
sandbox 属性
如果被规定为空字符串(sandbox=""),sandbox 属性将会启用一系列对行内框架中内容的额外限制,sandbox 属性的值既可以是一个空字符串(应用所有的限制),也可以是空格分隔的预定义值列表(将移除特定的限制)
allow-forms:允许表单提交;
allow-scripts:允许脚本执行;
<iframe src="/demo/demo_iframe_sandbox.html" sandbox="">
<p>Your browser does not support iframes.</p>
</iframe> <p>由于 sandbox 属性被设置为空字符串 (""),行内框架的内容不允许运行脚本。</p>
<p>如果向 sandbox 属性添加 "allow-scripts",则允许运行 JavaScript。</p>
scrolling 属性
是否在iframe中显示滚动条,默认的,如果内容超出了iframe,滚动条就会出现在iframe中
- auto:在需要的情况下出现滚动条(默认值);
- yes:始终显示滚动条(即使不需要);
- no:从不显示滚动条(即使需要);
<h3>iframe 中始终显示滚动条:</h3>
<iframe src ="/index.html" width="200" height="200" scrolling="yes">
<p>Your browser does not support iframes.</p>
</iframe>
<h3>iframe 中从不显示滚动条:</h3>
<iframe src ="/index.html" width="200" height="200" scrolling="no">
<p>Your browser does not support iframes.</p>
</iframe>

seamless 属性
属于逻辑属性,当设置该属性后,它规定了 <iframe> 看上去像是包含文档的一部分(无边框或滚动条)
<p>这是一个段落。</p>
<iframe src="/demo/demo_iframe.html" seamless></iframe>
<p><b>注释:</b>Opera、Chrome 以及 Safari 支持 seamless 属性。</p>

src 属性
规定在iframe 中显示的文档URL
<iframe src ="/index.html">
<p>Your browser does not support iframes.</p>
srcdoc 属性
规定页面的 HTML 内容显示在行内框架中,该属性与 sandbox 和 seamless 属性一同使用,如果浏览器不支持 srcdoc 属性,则相应地会显示在 src 属性(若已设置)中规定的文件
<iframe srcdoc="<p>Hello world!</p>" src="iframe.html">
<p>Your browser does not support iframes.</p>
</iframe>
<p><b>注释:</b>所有主流浏览器都支持 srcdoc 属性,除了 Internet Explorer。</p>
width 属性
规定iframe 宽度
iframe的基本特性
通常使用iframe最基本的特性,就是能自由操作iframe和父框架的内容(DOM),但前提条件是同域,如果跨域顶多只能实现页面跳转window.location.href;
<iframe id="mainIframe" name="mainIframe" src="homePage.html" frameborder="0" scrolling="auto" ></iframe>
<iframe id="mainIframe" name="mainIframe" src="http://www.w3school.com.cn" frameborder="0" scrolling="auto" ></iframe>
使用第一个的时候,因为同域,所以父页面可以对子页面进行改写,反之亦然】
使用第二个的时候,不同域,父页面没有权限改动子页面,但可以实现页面的跳转
获取iframe里的内容
iframe.contentWindow:获取iframe的window对象;
iframe.contentDocument:获取iframe的document对象;
这两个API只是DOM节点提供的方式(即getELement系列对象)
常用的配置项有
| allow-forms | 允许进行提交表单 |
| allow-scripts | 运行执行脚本 |
| allow-same-origin | 允许同域请求,比如ajax,storage |
| allow-top-navigation | 允许iframe能够主导window.top进行页面跳转 |
| allow-popups | 允许iframe中弹出新窗口,比如,window.open,target="_blank" |
| allow-pointer-lock | 在iframe中可以锁定鼠标,主要和鼠标锁定有关 |
frameset 和 iframe的区别
1、都用于html页面的框架布局
2、 iframe是内联框架,是在页面里生成个内部框架
frameset定义一个框架集,包含多个子框架,每个框架都有独立的文档,frame不能脱离frameset独立使用,iframe可以,frame不能放在body中
// 如下可以正常显示
<!--<body>-->
<frameset rows="50%,*">
<frame name="frame1" src="test1.htm"/>
<frame name="frame2" src="test2.htm"/>
</frameset>
<!--<body>--> // 如下不能正常显示:
<body>
<frameset rows="50%,*">
<frame name="frame1" src="test1.htm"/>
<frame name="frame2" src="test2.htm"/>
</frameset>
<body>
嵌套在frameset中的iframe必须放在body中
// 如下可以正常显示:
<body>
<frameset>
<iframe name="frame1" src="test1.htm"/>
<iframe name="frame2" src="test2.htm"/>
</frameset>
</body>
// 如下不能正常显示:
<!--<body>-->
<frameset>
<iframe name="frame1" src="test1.htm"/>
<iframe name="frame2" src="test2.htm"/>
</frameset>
<!--</body>-->
不嵌套在frameset中的iframe可以随意使用
// 如下均可以正常显示:
<body>
<iframe name="frame1" src="test1.htm"/>
<iframe name="frame2" src="test2.htm"/>
</body> <!--<body>-->
<iframe name="frame1" src="test1.htm"/>
<iframe name="frame2" src="test2.htm"/>
<!--</body>-->
frame的高度只能通过frameset控制,iframe可以自己控制,不能用过farmeset控制
<!--<body>-->
<frameset rows="50%,*">
<frame name="frame1" src="test1.htm"/>
<frame name="frame2" src="test2.htm"/>
</frameset>
<!--</body>--> <body>
<frameset>
<iframe height="30%" name="frame1" src="test1.htm"/>
<iframe height="100" name="frame2" src="test2.htm"/>
</frameset>
</body>
iframe可以放在表格里面,frame则不行
<table>
<tr>
<td><iframe id="" src=""></iframe></td><td></td>
</tr>
</table>
frame必须在frameset里,而frameset不能与body元素共存,也就说有frameset元素的文档只能是一个框架集,不能有别的东西;
iframe放在网页的什么地方都行,但是frame只能放到上下左右四个方向;
iframe是活动帧,而frame是非活动帧
因此,iframe可以放在表格里,然后iframe设置成width=100%,height=100%,这样就可以只修改表格的宽度和高度,有利于排版
<frame>用于全页面;
<iframe>只用于局部;
【Javaweb】html frame标签的使用 | 导航栏右侧内容的实现的更多相关文章
- iOS开发之如何修改导航栏的内容
导航栏的内容由栈顶控制器的navigationItem属性决定. UINavigationItem有以下属性影响着导航栏的内容(通常在子控制器中viewDidLoad方法中调用这些方法): 左上角的返 ...
- 超详细Vue实现导航栏绑定内容锚点+滚动动画+vue-router(hash模式可用)
超详细Vue实现导航栏绑定内容锚点+滚动动画+vue-router(hash模式可用) 转载自:https://www.jianshu.com/p/2ad8c8b5bf75 亲测有效~ <tem ...
- <ul>标签设计简单导航栏
当我们刚开始学习html/css的时候,对于padding .float.行内元素.块级元素用起来可能会混淆,但是呢我们可以通过一个简单的nav案例来清楚各自具体作用. 1.首先我们创建一个大的容器, ...
- 美团HD(2)-设置导航栏内容
DJHomeViewController.m #import "DJHomeViewController.h" #import "DJConstantValue.h&qu ...
- Bootstrap 学习笔记 项目实战 响应式导航栏
导航代码HTML: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=&q ...
- iOS开发笔记13:顶部标签式导航栏及下拉分类菜单
当内容及分类较多时,往往采用顶部标签式导航栏,例如网易新闻客户端的顶部分类导航,最近刚好有这样的应用场景,参考网络上一些demo,实现了这种导航效果,记录一些要点. 效果图(由于视频转GIF掉帧,滑动 ...
- HTML&CSS基础学习笔记1.11—导航栏
上文我们介绍到的<a>标签,由于<a>标签可以用来跳转,所以我们可以拿<a>标签来生成网页的导航栏. 其实在实际运用中,<a>标签就经常会被用来生成导航 ...
- OC导航栏自定义返回按钮
[iOS]让我们一次性解决导航栏的所有问题 在默认情况下,导航栏返回按钮长这个样子 导航栏默认返回按钮 导航栏左上角的返回按钮,其文本默认为上一个ViewController的标题,如果上一个Vi ...
- <iOS 导航栏>第一节:导航栏透明方法实现代码
说下导航栏的透明方法: 很多应用需要导航栏随着向上滑动,逐渐从透明变成不透明,很炫酷,大部分应用都在使用导航栏渐变效果,现附上代码然后直接将实现,一会讲下如何来实现,这一部分直接上代码. ...
- inline元素导航栏案例
练习一个超链接元素在文档流当中,a标签显示出来的inline这种元素的特性.我们可以用display来将它转换成inline-block类型,这样我们就可以设置它的高度,宽度和它的背景颜色等等特性了. ...
随机推荐
- 行行AI人才直播第15期:【AIGC科技公司法律顾问】Amber《AIGC的法律挑战》
近年来,AIGC技术的迅速进步为社会经济发展带来了新的机遇.各行各业都开始关注AIGC相关技术在商业落地中的应用,AIGC相关的创业及项目如雨后春笋般涌现.然而,AIGC的广泛应用也带来了一系列的法律 ...
- 3.0 Python 迭代器与生成器
当我们需要处理一个大量的数据集合时,一次性将其全部读入内存并处理可能会导致内存溢出.此时,我们可以采用迭代器Iterator和生成器Generator的方法,逐个地处理数据,从而避免内存溢出的问题. ...
- Docker Dockerfile指令大全
FROM-指定基础镜像 指定基础镜像,并且Dockerfile中第一条指令必须是FROM指令,且在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令. # 语法格式 FROM < ...
- IDA常用的插件
IDA常用的插件 FindCrypto https://github.com/polymorf/findcrypt-yara 算法识别 缺点:对于魔改的地方难以识别,比如对aes的s盒进行加密,运行时 ...
- 部署Harbor镜像仓库
Harbor介绍 Harbor是一个开源的企业级容器注册表服务.它由VMware和Pivotal联合开发,旨在为云原生应用程序提供一种安全可靠的容器镜像管理解决方案. Harbor是一个功能丰富.安全 ...
- 【RocketMQ】MQ消息发送总结
RocketMQ是通过DefaultMQProducer进行消息发送的,它实现了MQProducer接口,MQProducer接口中定义了消息发送的方法,方法主要分为三大类: send同步进行消息发送 ...
- 论文解读(IW-Fit)《Better Fine-Tuning via Instance Weighting for Text Classification》
Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ] 论文信息 论文标题:Better Fine-Tuning via Instance Weighting for Text Cl ...
- 全免费开源-国内搭建ChatGPT个人镜像站与维护全攻略
本教程收集于:AIGC从入门到精通教程汇总 全免费开源,仅需一个域名就可以部署国内的ChatGPT镜像版本. One-Click to deploy well-designed ChatGPT web ...
- 【故障公告】一而再,再而三,三翻四复:数据库服务器 CPU 100%
会员救园,故障捣乱,每当困难时,故障们总是喜欢雪上加霜过来考验你. 今天下班前 17:43~17:47 期间,园子的 SQL Server 数据库服务器突然出现 CPU 100% 问题. 发现问题后, ...
- 1.12 进程注入ShellCode套接字
在笔者前几篇文章中我们一直在探讨如何利用Metasploit这个渗透工具生成ShellCode以及如何将ShellCode注入到特定进程内,本章我们将自己实现一个正向ShellCodeShell,当进 ...