css - SSI 包含虚拟 CSS 问题

标签 css html apache ssi

我有一个 personal site设置在家里使用 javascript 在 apache 上运行,我现在才开始使用服务器端包含。我在网站的根目录中有一个样式化的导航栏,另存为一个单独的 HTML 文件。在这个文件中有一些样式(CSS),当包含这个导航栏(包含样式)时,样式被归因于不在 navbar.html 文件中的所有其他内容。代码 link here .部分代码如下。

ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
width: 100%;
}

li {
float: left;
}

li a, .dropbtn {
display: inline-block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}

li.dropdown {
display: inline-block;
}

这是 navbar.html 文件中 CSS 的一小部分,该文件包含在我的许多页面中。这意味着导航栏本身的样式(同样,它在同一个 navbar.html 文件中,上面的链接)并且只是它自己。我发现如果我在这些页面上有其他(例如)无序列表,它们也会受到包含但仅用于导航栏的样式的影响。我遇到的另一个问题是这些页面中实际存在的 CSS 影响了导航栏(例如 here 导航栏中的链接更改了颜色)。

所以,我想我的总体问题是,如何才能使 SSI 包含与实际页面上的任何其他样式分开?谢谢!

最佳答案

页面上的 CSS(即使是通过包含)会影响该页面上的所有内容。使用更具体的 CSS 选择器 - 为您的导航栏提供类或 ID,然后仅定位该类/ID。

<div id="navbar">
    <ul>...</ul>
</div>

#navbar ul { ... }

#navbar li { ... }

等等

关于css - SSI 包含虚拟 CSS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47522416/

相关文章:

jquery - 在 Safari 中动态设置 width-height-left-top

java - Windows 7 Excel 的 Apache POI 替代品

php - PHP(使用 Apache 或 Nginx)可以在 POST 请求完成之前检查 HTTP header 吗?

javascript - 将属性后的 css 转换为 jquery

mysql - 通过 mod_authn_dbd 使用 MySQL 的 Apache 身份验证失败

css - Angular 5 - 引导模式中的引导日期选择器

html - CSS 不适用于 IE 9

css - 如何更改 Odoo 中的工作表标签宽度?

javascript - JQuery 查找带有 rgb 的样式以替换为十六进制颜色

javascript - 如何使用 JavaScript 在 Canvas 上绘制跑道