在thead和tbody之间不匹配的列

时间:2012-12-19 22:54:54

标签: javascript html css

我在这里有一个申请:Application

在申请表中,请执行以下操作:

  1. 您将在左侧看到一个绿色加号按钮,点击它,它将打开一个模态窗口。

  2. 在模态窗口的搜索栏中输入短语single并提交搜索。表格如下所示。

  3. 点击“添加”按钮从表格中添加一行,它会在顶部控件中添加信息。

  4. 最后点击“添加问题”按钮,这会在下面附加一个表格行。

  5. 现在我遇到的问题是<thead>中的列和<tbody>中的列不匹配。我的问题是如何让这些列匹配?

    下面的HTML代码显示了附加的行:

        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); 
    

    下面是html表,其中包含表格标题列以及表格行附加到的位置:

    <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>
    

    下面是CSS代码:

    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;
        }
    

    我已经包含了一个jsfiddle,因此您可以查看它的演示并测试您的任何想法:http://jsfiddle.net/heA2b/1/

1 个答案:

答案 0 :(得分:5)

第一个答案(user1721135)不正确,这是因为你已经为thead和tbody分配了一个“block”的显示。删除它,你的问题就会消失。

他是对的,如果它们是相同的,你不必分配混合和最大宽度,但这不是导致你的问题的原因。

修改以添加工作示例:http://codepen.io/joe/pen/gqzbf