javascript - 根据目录位置应用 CSS 类

标签 javascript css

我构建了一个简单的 CSS 下拉菜单。我正在寻找的是一种根据您所在的目录将 css 样式类添加到菜单范围的方法。

例如,您位于联系人目录 http://www.site.org/contact在该目录中的任何页面上,我希望联系人菜单项是一个带有 id 名称的跨度,以保持分配给 .current 的颜色。然后,如果您离开并转到 about 目录,联系人将取消 .current 样式以及 about 对 .current 的更改。

最佳答案

您可以做的一件事就是将 CSS 视为主题。对于“每个目录的主题”类型的方法来说,这样做的方法是拥有一组始终适用于站点的基线样式,然后在每个目录中都有一个样式表,该样式表覆盖要更改的基本样式该目录的主题。

例如,如果您将其放在所有页面上:

<link rel="stylesheet" type="text/css" href="/base.css">
<link rel="stylesheet" type="text/css" href="theme.css">

您是说 base.css (位于网站的根目录中)将定义大部分样式,但随后将在 theme.css 中查找当前页面的同一目录,其中的样式也会应用于该页面,允许您用不同的颜色覆盖基本样式等。

如果您有一个动态站点,您应该能够向当前处于事件状态的导航元素添加一个类。但是,如果它是静态的,或者您无法添加/删除类,则可以为每个导航元素指定一个唯一的 ID,并在各个 theme.css 文件中使用该 ID 将样式应用到相应的导航项在该目录中。

如果您深入某个特定目录,事情会变得有点棘手,但解决方案是复制该目录中的主题文件(恶心),或者让更深的 HTML 页面链接到正确的目录,例如这个(下一级目录的示例):

<link rel="stylesheet" type="text/css" href="/base.css">
<link rel="stylesheet" type="text/css" href="../theme.css">

关于javascript - 根据目录位置应用 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5734629/

相关文章:

javascript - 如果发生更改代码错误的顺序意味着什么?

javascript - service worker 不在现场工作,而是在本地工作

javascript - 添加、删除和再次添加元素会删除其事件

javascript - 在悬停时显示图像只是为了实际悬停的元素

javascript - 仅在 Google Chrome 上出现 jQuery slider 不透明度错误

javascript - 如何反转 onClick 事件?

javascript - D3 在工具提示中插入图表

CSS:3 行(页眉、页脚、内容)液体布局,试图使中间的行在 window.resize 上扩展

css - Opera:具有最大高度的列数

html - CSS - 显示属性在 IE 中无法正常工作