有时,您希望能够更改特定页面上特定元素的样式,而不影响其他页面上的类似元素。例如,假设您想更改.ipsPageHeader元素在主题视图中显示,以使标题变大,但不改变其他所有同样使用的页面的标题.ipsPageHeader.
添加一个类名-错误的方式
一种方法是编辑主题视图的模板,向元素添加类名,然后使用新类名作为选择器创建样式。这是可行的,但它有一个缺点——因为你已经编辑了模板,当你升级到新的版本的IPS社区套件时,IPS4将无法为你自动更新它。由于这个原因,我们总是建议您尝试并避免直接编辑模板。
使用特定于页面的选择器-正确的方法
有一个更好的方法——IPS4中的每个页面都包含一些特殊的属性身体标识正在查看的应用程序、模块和控制器的标签。您可以使用这些来编写CSS选择器,使其只针对与所需页面匹配的目标页面。回到我们的例子,我们可以.ipsPageHeader在主题视图像这样:
身体[数据-pageapp=“论坛”][数据-页面模块=“论坛”][数据-pagecontroller=“主题”].ipsPageHeader{...你的风格}
这是因为主题视图是由主题控制器,在论坛模块,在论坛IPS Community Suite中的所有页面都遵循此控制器/模块/应用结构。
你可以把这些混合搭配。如果您只想在论坛应用程序中设置所有页面标题的样式,可以将上述内容简化为:
身体[数据-pageapp=“论坛”].ipsPageHeader{...你的风格}
你可以找到正确的值来使用,方法是转到你想要的页面,在Web Inspector这样的工具中查看源代码,然后找到身体标签-寻找特殊的数据页*用于该页的属性。
通过将这些样式包括在custom.css在您的主题中,您可以针对特定页面上的特定元素,而不会使以后升级社区变得困难。万博最佳平台
报告指南