如何使外部PHP小部件页面有自己的CSS.
问题是 – 当包含外部页面时,它受到主页样式表的影响.
包含的页面实际上是一个注释’小部件'(有他自己的.css文件,大约30行,不多),高度和宽度的灵活性是必须的.
PHP包含是迄今为止最好的解决方案,但我失去了我的头发调整其CSS文件以适合/ null(添加/排除/样式)任何可能的主机网页.
例:
如果主页具有img边框的样式,我必须将它们从小部件的style.css中取消,对于H3,P等都是相同的.
除了使用iframe之外,您如何保护小部件样式表不受主机页面样式的影响?
解决方法:
你知道CSS是客户端的东西;它不知道PHP以及页面在服务器上的生成方式.
您必须关注最终生成的HTML并重新定义标记和类以及ID,以便将所需的样式规则应用于正确的元素.
您可以通过在具有唯一ID或类的div中包含该部分来限制CSS规则的范围,并在CSS选择器中使用它,以便它们不会应用于该div之外的元素.
或者,如果你不能这样做,你必须使用更强的规则来覆盖其他元素的包含规则.这会有点混乱,但您可以使用多种技术覆盖应用于元素的样式,例如!important或具有更多选择器部分.
例如,在以下两个示例中,第二个规则将覆盖第一个规则:
#comments .link { color: red; } /* Included page rule */
#header .link { color: blue !important; }
要么
#comments .link { color: red; } /* Included page rule */
#header div a.link { color: blue; }