XHTML名称空间和CSS属性选择器
我不知道如何让CSS属性选择器根据命名空间属性为元素设置样式,而不使用命名空间属性(包括冒号)的普通HTML名称 例如:XHTML名称空间和CSS属性选择器,css,css-selectors,xhtml,xml-namespaces,Css,Css Selectors,Xhtml,Xml Namespaces,我不知道如何让CSS属性选择器根据命名空间属性为元素设置样式,而不使用命名空间属性(包括冒号)的普通HTML名称 例如: 带有名称空间的CSS属性选择器 @名称空间foo“http://www.stackoverflow.com/foo"; span[foo | id=bar]{font-family:monospace;font-weight:bold;} 应该是单空格粗体 您的文档需要作为XHTML文档处理,XML名称空间才能工作。请注意,仅拥有XHTML DOCTYPE和相关的xmln
带有名称空间的CSS属性选择器
@名称空间foo“http://www.stackoverflow.com/foo";
span[foo | id=bar]{font-family:monospace;font-weight:bold;}
应该是单空格粗体
您的文档需要作为XHTML文档处理,XML名称空间才能工作。请注意,仅拥有XHTML DOCTYPE和相关的xmlns
属性是不够的
您可以在服务器端通过将文档作为内容类型:application/xhtml+xml提供服务,或者在文件系统上通过使用.xhtml文件扩展名而不是.html保存文档来实现这一点。对于一个非常快速且肮脏的测试用例,您甚至可以复制整个标记,将其放到地址栏中,在数据:application/xhtml+xml之前添加前缀,,然后导航到结果数据URI
这在您链接到的第一个问题中非常简短地提到:
如果我将mime类型切换为application/xhtml+xml
还要注意,CSS中的名称空间必须与标记中的名称空间完全匹配<代码>@namespace foo“http://www.stackoverflow.com/foo";代码>不匹配
xmlns:foo=”http://stackoverflow.com/foo“
因为www.
。(有趣的是,foo
标识符不需要匹配,因为与名称空间本身不同,标识符是分开的。)很好,我将修复名称空间中的打字错误(显然,我的quick-n-dirty copy paste modify从我的真实项目引入了一个回归),然后我将在我的浏览器上尝试其他方法。将文件重命名为.xhtml即可。我还尝试使用meta-http-equiv设置内容类型(不重命名文件);@DavidP.Caldwell是的,中的内容类型我知道这是一个有点老的问题,但我遇到了同样的问题。我试图在HTML5的属性选择器中使用名称空间,而不是XHTML——我该怎么做?所有内容都正确,名称空间链接也正确。奇怪的是,w3c验证程序在使用