html - 如何创建带有固定标题的滚动表

标签 html css html-table

<分区>

Possible Duplicate:
HTML table with fixed headers?

我想知道为这个 fiddle 创建一个带有固定标题的滚动表的最佳方法是什么:http://jsfiddle.net/LKB9e/9/

我不想要单独的表头和表体,我希望列保持匹配。

有人可以让我的 fiddle 工作来匹配这个吗?

要使用 fiddle,只需单击演示中的“添加问题”按钮,它将继续将行附加到下面的表格中。

此刻表格正在滚动,没有固定的标题,这是通过以下方式完成的:

#details{
    height:500px;
    overflow:auto;
}

源代码如下:

HTML 表格:

<table id="questionBtn" align="center">
<tr>
    <th> <input id="addQuestionBtn" name="addQuestion" type="button" value="Add Question" onClick="insertQuestion(this.form)" /></th>
</tr>
</table>
</div>
<hr/>
<table id="qandatbl" align="center">
<thead class="tblhead">
    <tr>
        <th></th>
        <th class="qid">Question No</th>
        <th class="question">Question</th>
        <th class="optandans">Option and Answer</th>
        <th class="noofreplies">Number of Replies</th>
        <th class="weight">Number of Marks</th>
        <th class="image">Image</th>
        <th class="video">Video</th>
        <th class="audio">Audio</th>
    </tr>
</thead>
<tbody class="tblbody"></tbody>
</table>

下面是将行附加到上面的 html 表中的 javascript 代码:

function insertQuestion(form) {   


    var $tbody = $('#qandatbl > tbody'); 
    var $tr = $("<tr class='optionAndAnswer' align='center'>");
    var $td = $("<td class='extratd'>");
    var $plusrow = $("<td class='plusrow'></td>");
    var $qid = $("<td class='qid'></td>").text(qnum);
    var $question = $("<td class='question'></td>");
    var $noofanswers = $("<div class='noofanswers'>2. Number of Answers:<br/></div>");
    var $options = $("<div class='option'>1. Option Type:<br/></div>");
    var $answer = $("<div class='answer'>3. Answer:<br/></div>");
    var $replies = $("<td class='noofreplies'><div class='wrapper'></div></td>");
    var $weight = $("<td class='weight'></td>");
    var $image = $("<td class='image'></td>"); 
    var $video = $("<td class='video'></td>");
    var $audio = $("<td class='audio'></td>");


    $tr.append($plusrow);
    $tr.append($qid);
    $tr.append($question);
    $tr.append($td);
    $td.append($options);
    $td.append($noofanswers);
    $td.append($answer);
    $tr.append($replies);
    $tr.append($weight);   
    $tr.append($image);  
    $tr.append($video);
    $tr.append($audio);
    $tbody.append($tr);    


}

下面是CSS:

            /*css for QandATable.php*/
body{
    font-size:85%;    
}            

#qandatbl{
    border:1px black solid;
    border-collapse:collapse;
}

#qandatbl td { 
    vertical-align: middle;
}

#qandatbl th{
    border:1px black solid;
    border-collapse:collapse;
    text-align:center;
}

.tblhead, .tblbody {
    display: block;
}

.tblbody{
    height: 500px;
    overflow: auto;
    width:100%;    
}

.extratd{
    border:1px black solid;
    border-collapse:collapse;
}

.qid { 
    min-width:3%;
    max-width:3%;
    font-weight:bold;
    border:1px black solid;
    border-collapse:collapse;
}

.question { 
    min-width:25%;
    max-width:25%;
    border:1px black solid;
    border-collapse:collapse;
}

.noofanswers{
    min-width:100%;
    max-width:100%;
    padding-top:5%;
    padding-bottom:5%;
}

.noofreplies{
    min-width:3%;
    max-width:3%;
    border:1px black solid;
    border-collapse:collapse;
}

.optandans{
    min-width:30%;
    max-width:30%;
    border:1px black solid;
    border-collapse:collapse;
}

.option{
    min-width:100%;
    max-width:100%;
    padding-top:5%;
    padding-bottom:5%;
}

.weight { 
    min-width:3%;
    max-width:3%;
    border:1px black solid;
    border-collapse:collapse;
    }

.answer { 
    min-width:100%;
    max-width:100%;
    padding-top:5%;
    padding-bottom:5%;
     }

.audio{
    min-width:11%;
    max-width:11%;
    border:1px black solid;
    border-collapse:collapse;
    }

.video{
    min-width:11%;
    max-width:11%;
    border:1px black solid;
    border-collapse:collapse;
    }

.image{
    min-width:11%;
    max-width:11%;
    border:1px black solid;
    border-collapse:collapse;
    position:relative;
    }

.plusrow{
    min-width:2%;
    max-width:2%;
    border:1px black solid;
    border-collapse:collapse;
    }

更新:

我试图创建一个带有固定标题的滚动表,但问题是列不匹配:http://jsfiddle.net/heA2b/1/

最佳答案

关于html - 如何创建带有固定标题的滚动表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13976743/

上一篇:css - 另一个图像上的流体宽度 Logo

下一篇:javascript - slideDown 到最后突然跳转

相关文章:

css - 通过 CSS 在 Div 中均匀和水平分布图像

html - 溢出隐藏如何影响图像在显着主题中的位置?

html - Bootstrap 放大图片占满整个栏目

javascript - 定位 React js 中的下一个组件节点

javascript - 如何检查 Cypress.js 中的子节点位置索引?

php - 如果应使用某个字段,则保存 - SQL

javascript - 如何在 JavaScript 上的一个 Canvas 上传递新变量(无 Jquery)

html - Angular 6,7 如何将默认主题颜色应用于 mat-sidenav 背景?

jquery - 元素上的 skrollr 出现溢出问题 : scroll

html - 当具有已定义宽度的子元素位于具有 colspan 的单元格内时,如何修复 Microsoft Edge 显示不正确的表格单元格宽度?