文档类型不允许元素问题

时间:2011-12-11 14:04:45

标签: html css

我在验证我的网站时遇到了100个错误。在我解决这个问题之前,我不想继续构建。我逐行走了,我不明白我为什么会遇到这些问题。草稿起始页面位于www.flynntec.com。示例错误:

  

文档类型不允许元素“h3”在这里;假设缺少“li”start-tag [XHTML 1.0 Transitional]

  

文档类型不允许元素“li”在这里;缺少“ul”,“ol”,“menu”,“dir”start-tag [XHTML 1.0 Transitional]

接着是

  

上述元素不允许出现在您放置它的上下文中;其他提到的元素是唯一允许存在的元素,并且可以包含所提到的元素。这可能意味着您需要一个包含元素,或者您可能忘记关闭前一个元素。

     

此消息的一个可能原因是您尝试将块级元素(例如“< p>”或“< table>”)放入内联元素(例如“< a> “,”< span>“或”< font>“)。

示例HTML:

<li class="menu_right"><a href="#" class="drop">Access</a>  

  <div class="dropdown_5columns align_right">

        <div class="col_5">  
          <h2>Microsoft Access</h2>  
        </div>  

        <div class="col_1">
        <img src="media/Access Logo.png" width="120" height="118" alt="Microsoft Access" />
         </div>  

        <div class="col_1">  
             <ul class="greybox"><h3>Beginner</h3><li><a href="#">Welcome to Access</a></li>  
                <li><a href="#">The Power of Access</a></li>  
                <li><a href="#">Intro to Databases</a></li>  
                <li><a href="#">Intro to Tables</a></li>
                <li><a href="#">Creating Forms</a></li>  
                <li><a href="#">More...</a></li>
          </ul>
        </div>
        <div class="col_1">  
            <ul class="greybox"><h3>Intermediate</h3><li><a href="#">Custom Queries</a></li>  
                <li><a href="#">Create Reports</a></li>  
                <li><a href="#">Primary Key Guide</a></li>  
                <li><a href="#">Filtering Quickly</a></li>
                <li><a href="#">More...</a></li>
          </ul>
        </div>  

        <div class="col_1">  
            <ul class="greybox"><h3>Advanced</h3><li><a href="#">Web Integration</a></li>  
                <li><a href="#">Advanced Forms</a></li>  
                <li><a href="#">Using Triggers</a></li>  
                <li><a href="#">Shortcuts</a></li>
                <li><a href="#">Expression Builder</a></li>  
                <li><a href="#">More...</a></li>
          </ul>
        </div>  

        <div class="col_5">  
            <h2>Additional Free Resources</h2>  
        </div>  

        <div class="col_3">  

            <img src="media/youtube-logo.jpg" alt="YouTube Picture" name="youtube" width="90" height="70" class="img_left imgshadow" id="youtube_logo_2" />  
            <p>Microsoft Access is an ideal small-business database engine. YouTube is a great source for Access guides. We have compiled the best, most popular Access tutorials from YouTube and put them here for your convenience. </p>  

          <br />
          <a href="http://office.microsoft.com/en-us/training-FX101782702.aspx" target="_blank"><img src="media/microsoft-logo__111129012732.jpg" alt="" name="microsoft" width="90" height="24" class="img_left imgshadow" id="microsoft_logo_2" /></a>  
            <p><a href="http://office.microsoft.com/en-us/training-FX101782702.aspx"  title="Microsoft Training" target="_blank">Microsoft has fantastic resources on their  website. Microsoft Training can be found here.</a></p>
</div>
</div>
</li>

是的,有UL的开放和结束。

6 个答案:

答案 0 :(得分:3)

某些HTML元素只能包含某些其他HTML元素。 UL只能包含LI元素,因此UL内部的H3是错误的 将H3移出UL,或将其放入LI中 你想要达到什么效果?

此外,即使您的网页认为它是XHTML Transitional,您也会使用text/html MIME类型进行提供,因此浏览器会将其视为HTML。 如果您确实需要XHTML,请确保MIME类型为application/xhtml+xml。但是旧的IE版本将无法显示它。

答案 1 :(得分:2)

你不能直接在ul里面有一个h3元素 - 它需要在li之内,或者在ul之前 - 它应该已经修复了大部分验证错误...

答案 2 :(得分:2)

由于错误明确指出,您的HTML无效。

<ul>只能(直接)包含<li> s。

答案 3 :(得分:2)

<ul>标记仅用于放置<li>个标记,为什么不将<h3>放在<ul>个元素之前?

答案 4 :(得分:1)

XHTML Transitional正在抱怨,因为<h3>内部直接有<ul>,而<li>中没有<ul class="greybox"><h3>Beginner</h3><li><a href="#">Welcome to Access</a></li> <li><a href="#">The Power of Access</a></li> <li><a href="#">Intro to Databases</a></li> <li><a href="#">Intro to Tables</a></li> <li><a href="#">Creating Forms</a></li> <li><a href="#">More...</a></li> </ul> 。这实际上是不好的做法。

{{1}}

答案 5 :(得分:1)

你有一个h3直接在ul的内部开始。他们需要在列表之外,我们的内部是李。