如何将表中的所有td对齐在同一行中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将表中的所有td对齐在同一行中相关的知识,希望对你有一定的参考价值。

我正在使用kendo ui treeview。在那我动态添加树视图节点,我使用kendo ui模板。我已经定义了这样的模板:

  <script id="treetemplate" type="text/kendo-ui-template">


              <table id='treeviewtable'>

      # if (item.categoryName == "Textbox") { #  
        <tr>
        <td>
          <label style="color:red">#=item.label#</label>
        </td>
        <td>
      <label>#=item.val#</label>
        </td>
        # } #

          # if (item.categoryName == "Dropdown") { #            

                  <td>
        <label style="color:red">#=item.label#</label>
        </td>
        <td>
        <label>#=item.val#</label>  
         </td>
         # } #

    </table>
    </script>

我已经像这样定义了树视图:

       var treeview = $("#treeview").kendoTreeView({
                  template: kendo.template($("#treetemplate").html()),
                  dataSource: homogeneous,
                  dataTextField: ["categoryName"],

              }).data("kendoTreeView");

              kendo.init($("#treeview-left"));

我写了一个ajax并动态追加treeview子像这样:

   var selectedNode = treeview.select();

   if (selectedNode.length == 0) {
        selectedNode = null;
    }

   treeview.append({
      categoryName: json[i].categoryName, label: json[i].label, val: json[i].val
   }, selectedNode);

它工作正常。我的问题是我想以表格格式添加控件,每个tr包含两个控件。就像我想并排显示文本框和下拉菜单一样。我怎样才能做到这一点?

答案

第一个评论是table中HTML template的标签没有正确平衡......但这不会影响结果。

在KendoUI中,树节点是HTML无序列表(ul),因此您将每个节点内容放在HTML列表项(li)中。知道这一点你可能会理解使用你的表,每个节点是一个不同的表,所以一个项目不知道上一个/下一个的宽度,他们将不会保持相同的宽度。

因此,您需要将列表元素设置为float。定义以下样式:

如果您知道两列中每一列的宽度,则可以将两种CSS样式定义为:

#treeview li.k-item {
    float: left;
}

现在,您的模板可能是这样的:

<script id="treetemplate" type="text/kendo-ui-template">
    # if (item.categoryName == "Textbox") { #
    <div><label class="ob-label" style="color:red">#=item.label#</label></div>
    <div><label class="ob-val">#=item.val#</label></div>
    # } #

    # if (item.categoryName == "Dropdown") { #
    <div><label class="ob-label" style="color:green">#=item.label#</label></div>
    <div><label class="ob-val">#=item.val#</label></div>
    # } #
</script>

你可能会在这里看到一个正在运行的例子:http://jsfiddle.net/OnaBai/t6UeG/1/

根据您想要获得的内容,您可以使用KendoUI Menus

以上是关于如何将表中的所有td对齐在同一行中的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?

在同一行中获取所有 <td>

如何将 G+ 按钮和 facebook like 按钮对齐在同一行?

如何将 <th> 标题与表中的 <td> 对齐?

如何在同一行对齐 3 张卡片

如何将6张卡片和3张卡片对齐在同一行