这个HTML5 <address>元素有什么问题?</address>

时间:2011-02-07 15:29:44

标签: html css firefox html5 stylesheet

<div id="header-container">
      <address>
        <ul>
            <li>lorem ipsum</li>
            <li>(xxx) xxx-xxxx</li>
        </ul>
    </address>
</div>

CSS看起来像这样:

#header-container address {float: right; margin-top: 25px;}

当我加载页面时,它在Chrome&amp; IE,但在Firefox中它完全忽略了样式。当我在firefox中查看源代码时,它看起来像上面,但在Firebug中它看起来像这样:

<div id="header-container">
    <address> </address>
    <ul>
         <li>lorem ipsum</li>
         <li>(xxx) xxx-xxxx</li>
    </ul>
</div>

3 个答案:

答案 0 :(得分:7)

HTML5仍然是草稿。 Firefox 3.6尚未完全支持HTML5。

根据HTML4 specaddress只能包含inline元素:

<!ELEMENT ADDRESS - - (%inline;)* -- information on author -->
<!ATTLIST ADDRESS
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

这就是为什么Firefox认为它无效并且您的分页符。

答案 1 :(得分:0)

无序列表无法包含在地址标记内。我使用firebug进行了检查,Firefox在无序列表之前移动了关闭地址标记。

答案 2 :(得分:-1)

将显示块添加到CSS。然后,在关闭地址之前添加clear_both div。 这将解决内联行中块元素的任何问题。

你的CSS:

#header-container address {display: block; float: right; margin-top: 25px;}
.clear { clear: both; }

HTML:

<div id="header-container">
  <address>
    <ul>
      <li>lorem ipsum</li>
      <li>(xxx) xxx-xxxx</li>
    </ul>
    <div class="clear"></div>
  </address>
</div>