HTML包括一个导航栏(使用css)



所以我的学校网站导航栏有很多链接等等,每次创建新页面时都要在每个页面上添加新项目,这会变得很乏味。我试着使用或相关的东西,然后用导航栏链接html,但它没有显示我链接的任何CSS。

这是导航栏的代码:

下面是一些我被告知要做的事情的例子:

<div id="nav-placeholder">
</div>
<script>
$(function(){
$("#nav-placeholder").load("navbar.html");
});
</script>

上图:只是让导航栏完全消失。答案是"把它放在服务器上,它会工作的",但我目前不能这样做,因为服务器不工作。在这里找到(得票最多)。是的,我确实链接了它说的脚本。

<object name="navigation" type="text/html" data="navbar.html"></object>

这个让它看起来像这样。做了同样的事。在这里找到。

导航栏应该是这样的。

这是导航栏的代码:

<nav class="navbar">
<ul>
<li><a href="../DennisCourseSite.html">Home</a></li>
<li><a href="unita.html">Unit A</a></li>
<li><a href="unitb.html">Unit B</a></li>
<li><a href="unitc.html">Unit C</a></li>
<li><a href="unitd.html">Unit D</a></li>
<li><a href="unite.html">Unit E</a></li>
<li><a href="unitf.html">Unit F</a></li>
<li><a href="unitg.html">Unit G</a></li>
<li><a href="unith.html">Unit H</a></li>
<li><a href="../glossary.html">Glossary</a></li>
</ul>

这是css(如果需要):

nav {
font-family: 'Open Sans', sans-serif;
}
nav ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #666666;
display: block;
}
nav li a {
display: block;
color: white;
text-align: center;
padding: 10px;
text-decoration: none;
}
nav li {float: left;}
nav li:hover {background-color: #737373;}

注意:以上所有与导航条相关的代码都嵌套在一个元素中,如下所示:

<header class="head>
<!--navbar reference/include thing-->
</header>

很抱歉,如果它过于复杂,我认为人们可能需要所有的资源。

错误的方法imho。通过使用Jq

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

在html的head标签中,vanilla-js没有处理的方法


尝试这种方式
创建一个文件index.html(下面的代码)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready( function() {
$( "#container" ).load( "bar.html" );
console.log('Done');
});
</script>
<style type="text/css">
.obj-center {
top: 50%; left: 50%;
transform: translate(-50%, -50%);
}
.navbar {
position: absolute;
width: 80%; height: 10%;
border: 1px #000 solid;
}
ul {
position: absolute;
width: 100%; height: 100%;
}
li {
display: inline-block;
}
</style>
</head>
<body>
<div id = "container"></div>
</body>
</html>

创建一个文件bar.html(下面的代码)

<nav class="navbar obj-center">
<ul>
<li><a href="../DennisCourseSite.html">Home</a></li>
<li><a href="unita.html">Unit A</a></li>
<li><a href="unitb.html">Unit B</a></li>
<li><a href="unitc.html">Unit C</a></li>
<li><a href="unitd.html">Unit D</a></li>
<li><a href="unite.html">Unit E</a></li>
<li><a href="unitf.html">Unit F</a></li>
<li><a href="unitg.html">Unit G</a></li>
<li><a href="unith.html">Unit H</a></li>
<li><a href="../glossary.html">Glossary</a></li>
</ul>
</nav>

$(document).ready(function(){});-->文档准备好后,将立即执行此处的代码
$("#container").load("bar.html");-->加载内部索引div bar.html内容

为了改善图形效果,考虑使用"表格布局:固定"样式的表格


希望这将帮助您
Hele

我认为在您的第一个示例中可能存在一些javascript错误(请检查控制台)。这将导致无法正确加载导航。

在第二个例子中,我认为navbar.html是作为一个对象加载的,这意味着你很可能需要在nawbar.html本身中加载css,因为它可能无法从加载的html文档中获得css。

也许在您的情况下,使用PHP在每个页面中包含导航栏听起来是一个更简单的解决方案。请参阅此处的信息。

最新更新