在除特定页面 ID 之外的所有页面上设置 CSS 样式

Posted

技术标签:

【中文标题】在除特定页面 ID 之外的所有页面上设置 CSS 样式【英文标题】:Set CSS style on all but specific page ID 【发布时间】:2014-07-28 20:41:04 【问题描述】:

我正在为一个客户开发一个网站,该客户希望在整个网站范围内使用特定的背景颜色,除了一个页面上基本上用作具有独特内容和样式的单独的一页网站。

我的问题是……如何将 CSS 样式应用于所有但特定的页面 ID?

我的 CSS 当前如下所示:

.et_section_regular, #main-content background-color: #F5EFE5 !important

!important 之所以存在,是因为我必须从一开始就覆盖主题的默认背景颜色。我试过使用以下 not:选择器 (referenced here) 没有运气:

.et_section_regular:not (.page-id-714 .et_section_regular), #main-content:not(.page-id-714 #main-content) background-color: #F5EFE5 !important

我正在尝试做的事情可能吗?

【问题讨论】:

也向我们展示一些 html。不确定您使用的是什么结构。 在这种情况下不要使用!important。 (最好不要使用它 - 没有它,IMO 一切都可以解决)。使用更强大的选择器。您的覆盖规则需要与最强的!important 规则一样“选择性”,并且必须在此之后定义。 IMO,not() 不是必需的:.page-123 .class .class ... 应该足够了。 【参考方案1】:

DEMO

您不能选择高于您应用:not()的选择器

另一种方法是首先提及应用您的页面 id 的父选择,然后定位内部 div - 检查演示。

CSS:

section:not(.page-id-174) .et_section_regular,
section:not(.page-id-174) #main-content
    background-color: #F5EFE5 !important

请注意,我仅在演示中使用部分标签,但您可以使用正文标签 - 我假设您已应用 .page-id-174

【讨论】:

感谢您的回复!我试过这个,用“body”替换“section”,但在你的演示或我的网站上都无法让它工作。所以也许 body 不会在那里工作? body:not(.page-id-174) .et_section_regular, body:not(.page-id-174) #main-contentbackground-color: #F5EFE5 !important 再次感谢大家的反馈。我最终放弃了尝试这样做,只是创建了一个新的页面模板并以这种方式设置样式。不过,希望这个小线程对以后的其他人有所帮助 - 也许比我更聪明的人可以弄清楚如何实施 Imran 的建议。 没有必要创建不同的模板,你可以使用层次结构的力量检查我的answer revision 1 我刚刚确认我当前的解决方案即使使用 body 标签也能正常工作......你一定有其他问题。 是的,这只是我使用的特定主题和结构的问题(Elegant Themes Divi)。通过定位 templateid,我能够简化这一点并避免使用 :not。感谢您的宝贵时间,一定会为以后添加书签!

以上是关于在除特定页面 ID 之外的所有页面上设置 CSS 样式的主要内容,如果未能解决你的问题,请参考以下文章

在日历中的特定日期显示背景颜色的问题,在除移动 Safari 之外的所有浏览器上都可以正常工作

覆盖整个页面,除了一个元素

如何在除 Localhost 之外的特定 IP 上运行 Geoserver?

仅在所有 WooCommerce 单品上显示价格后缀

Wordpress 404 在除主页外的所有页面上都找不到

如何在链接中设置参数?