如何在css中使用名称空间?

如何在css中使用名称空间?,css,Css,我的HTML页面包含一个id为“main”的div,我在HTML页面中包含另一个HTML页面,其中包含一个id相同的div(“main”)。我需要在HTML页面的id(“main”)中添加一个名称空间 我包括从另一个网站的页眉,页脚,并包括从我的网站到该HTML页面的内容。如果其他站点使用的id与我的站点使用的id相同,则会发生冲突 在这个HTML页面中包含两个css文件。如果它们都包含具有不同样式的相同类,则存在问题 我需要将css文件应用于我的代码,并将另一个应用于剩余的代码。 任何人都能解

我的HTML页面包含一个id为“main”的div,我在HTML页面中包含另一个HTML页面,其中包含一个id相同的div(“main”)。我需要在HTML页面的id(“main”)中添加一个名称空间

我包括从另一个网站的页眉,页脚,并包括从我的网站到该HTML页面的内容。如果其他站点使用的id与我的站点使用的id相同,则会发生冲突

在这个HTML页面中包含两个css文件。如果它们都包含具有不同样式的相同类,则存在问题

我需要将css文件应用于我的代码,并将另一个应用于剩余的代码。
任何人都能解决我的问题吗?

在第二个div的ID中使用第二个div的名称。例如,如果第二个页面名为
signup.html
,则使用
main\u signup

div的包含元素是否有任何区别。如果有,您可以使用包含元素作为css声明的前缀,并为两个div指定唯一的样式

例如:

正如人们提到的,如果您可以控制HTML,那么为这两个元素指定一个不同的类或为每个元素指定一个唯一的ID是明智的。

两件事:

  • 听起来你需要的是一个类,而不是一个ID
  • 如果希望应用样式之间每页的差异,请使用嵌入式样式表

在这种情况下,使用相同的身份证肯定是一种生活方式。如果您可以控制这种情况,您应该更新HTML,而不是在以后引起更多的混乱。

具有重复id的页面无效。即使您通过将id与类结合起来,以单独的元素为目标,也不能保证所有浏览器都能使用它


要创建有效的页面,元素需要具有唯一的id。

简而言之,CSS中没有名称空间。使用其他答案建议的解决方法之一:)

到目前为止,我同意大家的看法,因为没有原生CSS名称空间功能,如果您有控制权(或愿望/能力)编辑HTML,那么这是最好的方法

自动化该过程的一种方法是编写一个脚本(PERL、PHP、.NET等)来解析正在拉入的HTML,并用修改后的版本替换任何现有ID或类

i、 e.
变为

您可以通过一些创造性的正则表达式来实现这一点,不过如果有Javascript代码也需要修改,则会变得更加棘手

就性能而言,这将是一个很大的成功,取决于文件的大小,您可能希望缓存结果,或者重写原始文件


让我知道,如果你决定走这条路,这个想法实际上听起来有点有趣,可以在我的工具箱中占有一席之地

你赢了我。answers上的自动更新功能很好。从技术上讲不是,但john似乎对元素的调用控制有限。您不需要嵌入样式表来获得每页的差异!你只需在body标签上添加一个ID,这不是我的偏好,因为它会使css文件变得杂乱无章。前几天我们在工作中讨论过这个问题。它可以分解为:偏好。这里有一群人在争论这个问题:我看到了双方,把你所有的规则都放在一个地方很好。
#main
{Style}
.container #main
{Another style}