如果我使用< address>>,Firefox似乎拒绝为
HTML元素设置样式元素在CSS选择器.
例:
<footer> <address> <ul> <li id="email_address">email@website.com</li> <li id="phone_number">(555) 555 - 5555</li> </ul> </address> </footer>
address li { color: #0000ff; } /* fails */ #phone_number { color: #ff0000; } /* works as expected */
我在FF 3.6.12看到这一点,在Safari 5.0.3中预期的工作
任何想法为什么会发生这种情况?
解决方法
其原因其实很简单. Firefox 3.6还不符合HTML5草案规范.检查< address>元素与Firebug,我们可以看到Firefox看到的:
<footer> <address> </address><ul> <li id="email_address">email@website.com</li> <li id="phone_number">(555) 555 - 5555</li> </ul> </footer>
您可以看到,Firefox以某种方式解释了您的HTML,如上所示. < address>元素现在是空的,因此< li>元素没有样式.
但为什么?查看HTML4 specifications,我们可以看到< address>元素是一个内联元素(如注释中的Alohci所述)应该只包含内联元素.
<!ELEMENT ADDRESS - - (%inline;)* -- information on author --> <!ATTLIST ADDRESS %attrs; -- %coreattrs,%i18n,%events -- >
由于Firefox 3.6不符合HTML5规范,至少对于Firefox来说,上面使用的HTML无效,浏览器处理未指定行为的方式是断开,如上所示.
没有办法解决这个问题 – HTML5只是在起草阶段,浏览器不需要以任何方式符合他们.您可能希望向Mozilla的Bugzilla bug tracking system提交错误报告.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。