html 标记未在 DOM 中的正确位置创建

标签 html css

我想使用 CSS 创建 Accordion 3 和 HTML5 ,但我遇到了我的 HTML 标记在 DOM 中的位置问题

这是我的 HTML(不要关注 PHP):

<div id="listeChecklist" class="panel panel-primary">
    <div class="panel-heading">Check liste</div>
    <div class="panel-body">                
        <table class="table">
            <thead>
                <tr>
                    <th>Date</th> 
                    <th>Heure</th>
                    <th>Machine</th>
                    <th>Référence produit</th> 
                    <th>Personne</th>
                </tr>
            </thead>
            <tbody>
                <section class="ac-container">
                    <?php
                    while($row = $requete->fetch()){ ?>
                        <div>
                            <tr>
                                <td><?php echo $row['date']; ?></td>
                                <td><?php echo $row['heure']; ?></td>
                                <td><?php echo $row['machine']; ?></td>
                                <td><?php echo $row['ref']; ?></td>
                                <td><?php echo $row['nom']." ".$row['prenom']; ?></td>
                            </tr>
                        </div>
                    <?php
                    } ?>
                </section>
            </tbody>
        </table>
    </div>
</div>

所以在我的 <table> <tbody>我有一个部分将作为我的容器,在 while 循环中(对于我在数据库中找到的每个元素)我创建了一个 div 来包装来自数据库的元素。

但是当我在 Internet 上打开我的页面时,我没有获得我想要的 DOM:

<div id="listeChecklist" class="panel panel-primary">
    <div class="panel-heading"></div>
    <div class="panel-body">
        <section class="ac-container"></section>
        <table class="table">
            <thead></thead>
            <tbody></tbody>
        </table>
    </div>
</div>

您可以看到部分表格 之上。

我能解释一下我犯的错误吗?

谢谢。

最佳答案

sectiondiv 元素不能是 tabletbodythead 的直接子元素tr 元素 - 它们必须位于 thtd 内;尽管我认为这不是语义的。您的浏览器本身意识到您的 HTML 不正确,并试图通过将 section 元素完全移出您的 table 来修复它。

此外,sectiondiv 元素可能没有 tr 子元素 - 但是,它们可以有子元素 table 元素。

我真的不知道你想通过将东西包装在 sectiondiv 元素中来实现什么,但是 table 元素用于表示表格数据,仅此而已。

无效的 HTML

<table>
    <tbody>
        <section>...</section>
    </tbody>
</table>

有效的 HTML

<section>
    <table>
        <tbody>...</tbody>
    </table>
</section>

关于html 标记未在 DOM 中的正确位置创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30071917/

相关文章:

php - 获取非英语的用户输入

javascript - 需要为其他表复制脚本而不影响原始脚本

android - 为不同的 Android 屏幕尺寸/密度缩放 Phonegap 应用程序?

css - 如何绑定(bind)由构成颜色名称、 Angular 等的动态变量组成的线性渐变背景属性?

javascript - 将 url 重定向到某个 div

javascript - 为什么第 nth-child 将样式添加到备用可见元素不起作用?

javascript - getJSON 函数未触发

html - 响应式两列网格

如果 div :before is floating (WebKit),CSS3 动画不起作用

html - 如何在WordPress中引用图像和字体?