【问题标题】:Element 'div' cannot be nested within element 'ul'元素“div”不能嵌套在元素“ul”中
【发布时间】:2014-05-22 04:41:39
【问题描述】:
 <ul>
           <div style="float:left">
                   <asp:LinkButton ID="lbtnFirst" runat="server" CausesValidation="false" OnClick="lbtnFirst_Click">İlk</asp:LinkButton></div> 
           <div style="float:left"><asp:LinkButton ID="lbtnPrevious" runat="server" CausesValidation="false" OnClick="lbtnPrevious_Click"> << </asp:LinkButton></div>
</ul>

在我的 Asp.net 项目中,我收到此警告:

验证(XHTML 1.0 过渡):元素 'div' 不能嵌套 在元素“ul”中。

但是当我点击 F5 时,一切都很好。 现在我正在 Visual Studio 2013 中的本地主机上工作(代码端是 C#) 我想问一下这将来会不会给我的网站带来问题?

【问题讨论】:

  • 即使使用此无效标记,您的页面也会呈现,但在ul 中立即包含div 绝对没有意义。你想用这个来完成什么?
  • @JLRishe,我用中继器控制创建分页。项目有效,没问题。由于我的项目页码,第一页,上一页,下一页,最后一页应该在ul 内。我写div是因为float:left风格。
  • 你为什么不使用lis?你可以给他们申请float: left
  • @JLRishe,我改了,谢谢。

标签: asp.net html html-lists


【解决方案1】:

您仍然可以使用您的 div 标签,只需将其包装在 li 元素中。

<ul>
<li>
    <div style="float:left">
        <asp:LinkButton ID="lbtnFirst" runat="server" CausesValidation="false" onClick="lbtnFirst_Click">İlk</asp:LinkButton>
    </div>
    <div style="float:left">
        <asp:LinkButton ID="lbtnPrevious" runat="server" CausesValidation="false" OnClick="lbtnPrevious_Click"> << </asp:LinkButton>
    </div>
</li>

尽管正如其他人所说,您也可以直接将样式应用于 li 元素。

【讨论】:

    【解决方案2】:

    警告是,嗯,警告。您的页面正确显示只是因为浏览器对 HTML 规则不太严格,但将来可能会改变。因此,您应该尽量保持 HTML 兼容并认真对待警告。在这种情况下,我建议将&lt;div&gt; 替换为&lt;li&gt; 标签并设置它们的样式以防止出现边距和项目符号(我认为这就是您首先使用&lt;div&gt; 而不是&lt;li&gt; 的原因)。

    要实现您想要的,请将此 CSS 样式应用于您的列表:

    .your-ul {
        list-style: none;
    }
    
    .your-ul li {
        position:relative;
        margin-left: 0;
        display: inline-block;
    }
    

    您的 HTML/ASPX 代码如下所示:

    <ul class="your-ul">
        <li><asp:LinkButton ID="lbtnFirst" runat="server" CausesValidation="false" OnClick="lbtnFirst_Click">Ilk</asp:LinkButton></li> 
        <li><asp:LinkButton ID="lbtnPrevious" runat="server" CausesValidation="false" OnClick="lbtnPrevious_Click"> << </asp:LinkButton></li>
    </ul>
    

    【讨论】:

      【解决方案3】:

      通常人们会期望ul 元素包含li 元素。 li 元素包含divs 可能有意义,但将divs(或其他任何东西)作为ul 的直接子元素没有多大意义。您可以将divs 更改为lis,也许这就是您要找的?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-10
        • 1970-01-01
        • 1970-01-01
        • 2012-05-16
        • 1970-01-01
        • 2013-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多