Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 导航菜单中突出显示的锚点_Html_Css_Wordpress_Web_Anchor - Fatal编程技术网

Html 导航菜单中突出显示的锚点

Html 导航菜单中突出显示的锚点,html,css,wordpress,web,anchor,Html,Css,Wordpress,Web,Anchor,我有一个WordPress系统。问题是我的导航菜单。 我有一个指向菜单中某个子网站的链接和一个指向主站点的锚定点。 因此,如果我像这样链接锚点:#test它在主站点上工作。如果我想在子网站上单击此按钮,它将不起作用 如果我像这样链接锚点:http://localhost/#test它在子站点上工作 但在主页上,锚是突出显示的。我知道这是因为它是当前的菜单项,但我不希望它突出显示。我可以将当前的菜单项设置为普通颜色 但我希望活动链接高亮显示 我对答案的想法是,也许我会这样链接:#test,然后我将

我有一个WordPress系统。问题是我的导航菜单。 我有一个指向菜单中某个子网站的链接和一个指向主站点的锚定点。
因此,如果我像这样链接锚点:
#test
它在主站点上工作。如果我想在子网站上单击此按钮,它将不起作用

如果我像这样链接锚点:
http://localhost/#test
它在子站点上工作

但在主页上,锚是突出显示的。我知道这是因为它是当前的菜单项,但我不希望它突出显示。我可以将当前的菜单项设置为普通颜色

但我希望活动链接高亮显示

我对答案的想法是,也许我会这样链接:
#test
,然后我将链接重定向到:
http://localhost/#test

但如果有另一个解决方案就好了。 我在www上找不到关于这个主题的东西。如果有人有一个好的文档,那就太好了


谢谢您的帮助:)

如果您这样使用它:
#测试
它是指当前访问站点上的锚

因此,对于主站点,它将是
你的网站.tld/#test

在子网站上,它将是
你的网站。tld/subset/#test

非常不同的事情

使用完整链接,使菜单始终指向相同部分的信息

如果不想突出显示完整链接,则可能需要使用JavaScript

例如,您可以使用锚定标记将类添加到所有菜单链接中,并去除突出显示效果。

或者,您可以将每个菜单链接与url栏中的当前url进行比较-如果这不是一个完美匹配-添加一个类/或添加一个完美匹配的类。

因此,我找到了一个解决方案。我添加了一些JS来删除添加高亮效果的CSS类

因此,这是完美的工作。一开始有点困难,因为我无法使用
getElementsByClassName
选择菜单项。但是使用querySelector,它工作得很好

JS代码如下所示:
对于第一个锚点:

document.querySelector("#menu-navigation-de-1 > li.menu-item.menu-item-type-custom.menu-item-object-custom.current-menu-item.current_page_item.menu-item-home.menu-item-49874.nav-item").classList.remove("current-menu-item");
对于第二个锚点:

document.querySelector("#menu-navigation-de-1 > li.menu-item.menu-item-type-custom.menu-item-object-custom.current-menu-item.current_page_item.menu-item-home.menu-item-300.nav-item").classList.remove("current-menu-item"); 

谢谢你@ibes,你帮助了我。:)

移除散列“#”标记,然后重试。#是锚定点。如果我不使用它,它就是一个指向不存在的站点的链接。谢谢你的帮助!我已经想过这样的事情了。我在JS方面有问题,所以如果你能帮我一点忙就好了。第一个问题是,你想使用哪个根?我认为最干净的方法是在菜单链接上放置一个与当前url完全匹配的类。然后我建议扩展当前CSS规则,突出显示当前活动选项卡,如果没有执行JS,则保持一切不变,如果JS不活动,则减少突出显示-听起来不错?您是否使用纯JS或jQuery?您需要的是:-在页面完成加载DOM后(文档准备就绪)-获取特定菜单中的所有链接(通过选择器获取元素)-获取地址栏中的当前url(类似于window.location)-对于每个链接,将href属性与当前url进行比较-如果存在匹配项,则在每次有人浏览您的站点时页面刷新时向其添加一个类。您只需在页面加载时执行一次,以后无需更改内容(抱歉-我不能换行?!)