我构建了一个简单的 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/