JavaScript和CSS网站导航栏

JavaScript和CSS网站导航栏,javascript,html,css,Javascript,Html,Css,是否有任何方法可以在两个页面上使用一个导航栏,但两个页面上的链接不同?例如,如果是关于动物的:第1页=狗,第2页=猫。两者都有一个导航栏项目,其中包括“食品店”、“美容”和“关于”。我想在狗的页面上链接到一家食品店,在猫的页面上链接到另一家食品店。如果您有任何关于如何进行的资源,将不胜感激!谢谢 您可以制作导航栏并在CSS中设置样式,只需更改锚定标记的href=“”您可以制作导航栏并在CSS中设置样式,只需更改锚定标记的href=“”一种方法是使用Angular中的可重用组件。我不认为这是你期望

是否有任何方法可以在两个页面上使用一个导航栏,但两个页面上的链接不同?例如,如果是关于动物的:第1页=狗,第2页=猫。两者都有一个导航栏项目,其中包括“食品店”、“美容”和“关于”。我想在狗的页面上链接到一家食品店,在猫的页面上链接到另一家食品店。如果您有任何关于如何进行的资源,将不胜感激!谢谢

您可以制作导航栏并在CSS中设置样式,只需更改锚定标记的href=“”您可以制作导航栏并在CSS中设置样式,只需更改锚定标记的href=“”一种方法是使用Angular中的可重用组件。我不认为这是你期望得到的答案(如果你正在做一个分级项目,也许你的导师强迫你使用javascript)。但我强烈建议您学习Angular,即使一开始它有点太难理解,但它解决了使用Javascript开发时发现的所有问题


另一种方法是在加载时通过javascript加载HTML,这是一种糟糕的做法,并在函数的参数内设置url变量。

一种方法是使用Angular中的可重用组件。我不认为这是你期望得到的答案(如果你正在做一个分级项目,也许你的导师强迫你使用javascript)。但我强烈建议您学习Angular,即使一开始它有点太难理解,但它解决了使用Javascript开发时发现的所有问题


另一种方法是在加载时通过javascript加载HTML,这是一种不好的做法,并在函数的参数内设置url变量。

是的,这绝对是可能的,好消息是,有许多不同的方法可以实现这样的设置

我实现这种导航栏的首选方法是在服务器端提供正确的链接,这样最终用户的浏览器从您的服务器实际接收到的代码已经包含了包含正确链接的完整导航栏。根据您的服务器设置,使用一些PHP或Node.js可以相对轻松地实现这一点。如果您对这条路线感兴趣,我很乐意深入探讨如何在服务器端实现这一点,但因为您询问如何使用JavaScript(我猜您指的是前端JS)实现这一点,我现在将在回答中解释第二种非服务器端方法

为了使用所有前端JavaScript实现这一点,我看到了两个主要方向。我会很快解释的。首先,我们需要使用JavaScript从URL获取当前页面的路径。我们可以使用以下代码(解释如下):

const pageName=window.location.pathname.slice(1.split)(“/”[0];
我们检索当前页面的路径。对于本例,我使用
.slice(1)
从URL路径window.location.pathname(域之后)中删除起始斜杠字符(“/”)。这将用于两个示例。从这里开始,我使用
.split(“/”)
将URL路径字符串拆分为不同的数组值,方法是在出现另一个斜杠字符的地方拆分字符串。现在,我们使用
[0]
从该数组中获取第一个值,该值将等于页面URL中域之后路径中的第一个目录。此方法适用于此页面以及同一目录下的任何子页面(例如
/path-1/
/path-1/path-1-subpath/

1.If/Else方法 第一种也是更简单的方法是使用我们上面提取的值检查当前页面的URL路径,然后为您希望为该页面显示的任何导航项目注入HTML代码

const pageName=window.location.pathname.slice(1.split)(“/”[0];
const nav=document.getElementById('navigation');
如果(页面名称==“狗”){
导航插入相邻TML('afterbegin','');
}else if(pageName==“cats”){
导航插入相邻TML('afterbegin','');
}else if(pageName==“js”){
导航插入相邻TML('afterbegin','');
}否则{
导航插入相邻TML('afterbegin','');
}
正文{
保证金:0;
-webkit字体平滑:抗锯齿;
-moz osx字体平滑:灰度;
字体系列:arial,无衬线;
}
导航{
显示器:flex;
对齐项目:居中;
调整内容:灵活启动;
间隙:15px;
填充:10px 15px;
背景色:#03a9f4;
}
导航>a{
显示:内联块;
填充物:5px10px;
边界半径:100px;
字体大小:粗体;
颜色:#fff;
文字装饰:无!重要;
过渡:所有0.15秒缓解;
}
导航>a:悬停{
背景色:#283593;
}

是的,这绝对是可能的,好消息是,有许多不同的方法可以实现这样的设置

我实现这种导航栏的首选方法是在服务器端提供正确的链接,这样最终用户的浏览器从您的服务器实际接收到的代码已经包含了包含正确链接的完整导航栏。根据您的服务器设置,使用一些PHP或Node.js可以相对轻松地实现这一点。如果您对这条路线感兴趣,我很乐意深入探讨如何在服务器端实现这一点,但因为您询问如何使用JavaScript(我猜您指的是前端JS)实现这一点,我现在将在回答中解释第二种非服务器端方法

为了使用所有前端JavaScript实现这一点,我看到了两个主要方向。我会很快解释的。首先,我们需要使用JavaScript从URL获取当前页面的路径。我们可以使用以下代码(解释如下):

const pageName=window.location.pathname.slice(1.split)(“/”[0];
我们检索当前页面的路径。对于本例,我使用
.slice(1)
删除startin