javascript - iframe:如何在所有其他 iframe 之上将带有导航菜单的特定 iframe 分层?
问题描述
我正在尝试对 iframe 进行分层,以便带有导航菜单的框架位于所有其他 iframe 之上。导航菜单是一个 CSS 下拉选项卡菜单导航。问题是当一个下拉菜单从一个悬停在它上面的类别中出现时,它会显示在显示内容的主 iframe (iframe_b) 后面。
<html>
<body bgcolor="black" text="red">
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
body {
font-family: Arial, Helvetica, sans-serif;
}
.navbar {
overflow: hidden;
background-color: #333;
}
.navbar a {
float: left;
font-size: 16px;
color: white;
text-align: center;
padding: 1px 16px;
text-decoration: none;
}
.dropdown {
float: left;
overflow: hidden;
}
.dropdown .dropbtn {
font-size: 16px;
border: none;
outline: none;
color: white;
padding: 1px 16px;
background-color: inherit;
font-family: inherit;
margin: 0;
}
.navbar a:hover, .dropdown:hover .dropbtn {
background-color: gray;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
float: none;
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.dropdown-content a:hover {
background-color: #ddd;
}
.dropdown:hover .dropdown-content {
display: block;
}
</style>
</head>
<body>
<div class="navbar" position:top;>
<a href="#home">Home</a>
<a href="#news">News</a>
<div class="dropdown">
<button class="dropbtn">Dropdown
<i class="fa fa-caret-down"></i>
</button>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</div>
</div>
</body>
</html>
<iframe height="30px" width="100%" src="menu.html" name="iframe_a" style="border:none;scrolling:no;"></iframe>
<iframe height="85%" width="100%" src="CONTENT_PANE" name="iframe_b" style="border:none;"></iframe>
<iframe height="40
我需要 iframe_a,该菜单位于所有其他框架的顶部,因此当有下拉菜单时,它会出现在 iframe_b 的内容之上。我该如何做到这一点?
15 多年前,我在另一个使用 z-index 构建的站点上做了我想做的事情,但我没有该站点的代码可供参考,我当然不记得我是如何做到的。据我依稀记得,做起来非常简单,它只是放在部分的正文标签中的一行 (z-index:something)。
我是该网站的新手,不熟悉如何格式化所有内容。片段的 HTML 窗格中的 HTML(小提琴??)是“indext.html”。CSS 窗格中的内容是 iframe_a 导航菜单的示例。
解决方案
您需要将样式应用于特定iframe
,因为来自的样式表index.html
无法格式化 iframe内容,例如来自其中一个的下拉菜单iframe
。将z-index
“顶部” iframe
(我想是下拉菜单)的值设置为某个大数字,例如 999 和其他一些较小iframe
的数字
例子:
<iframe height="30px" width="100%" src="menu.html" name="iframe_a" style="border:none;scrolling:no; z-index:999;"></iframe>
<iframe height="85%" width="100%" src="CONTENT_PANE" name="iframe_b" style="border:none; z-index:10;"></iframe>```
推荐阅读
- java - 如何从复选框数组中获取选定的复选框
- logging - 如何将日志从内核空间写入特定文件?
- jsf - Primefaces autocomplete:自动选择项目
- apache-spark-mllib - 将 Spark MLlib 模型从 R 记录(然后应用)到 MLflow
- google-analytics-api - Google Search Console API 未返回所有结果
- .net - Jenkins 一直显示错误为“MSBUILD:错误 MSB1009:项目文件不存在。” 在尝试使用 Jenkins 构建 .NET 核心应用程序时
- python - how to set correct batch_size and steps_per_epoch in keras?
- python - 在 Python 中使用 Pafy 库时遇到错误
- field - word中STYLEREF字段中的\n和\r有什么区别?
- quarkus - 当从 Intellij 执行测试时,添加 @QuarkusTest 会导致 docker 运行