bootstrapTable:如何垂直对齐细节图标?

时间:2017-07-06 14:55:59

标签: html css bootstrap-table

我正在使用bootstrapTable并遇到以下问题:

在我的表格的每一行中都会显示一张预览图片,以便行高度大于“正常”,其余列中的内容放在顶部。我想垂直对齐这些列中的文本/按钮/复选框。通过对列使用选项align: 'center'valign: 'middle',可以实现此目的 - 至少对于“正常”列。它对包含复选框和详细信息图标('plus'-icons)的列没有影响。

我添加了

.bs-checkbox {
    text-align: center !important;
    vertical-align: middle !important;
}

到我的css文件并收到了所需的结果。但是detail-icon类的模拟方式出错了。我在Stackoverflow上发现了类似的问题 - 但答案对我没有帮助。

有人有想法解决我的问题吗?

这是一个例子:

var data = [
  {
    "id": 0,
    "name": "Item 0",
    "price": "$0",
    "preview": '<img src="https://www.w3schools.com/images/lamp.jpg" alt="Lamp" height="50">'
  },
  {
    "id": 1,
    "name": "Item 1",
    "price": "$1",
    "preview": '<img src="https://www.w3schools.com/images/lamp.jpg" alt="Lamp" height="50">'
  },
  {
    "id": 2,
    "name": "Item 2",
    "price": "$2",
    "preview": '<img src="https://www.w3schools.com/images/lamp.jpg" alt="Lamp" height="50">'
  }
];

$(function () {
  $('#table').bootstrapTable({
      columns: [
        {
          field: 'state',
          checkbox: true,
          align: 'center',
          valign: 'middle'
        }, 
        {
          field: 'id',
          title: 'ID',
          align: 'center',
          valign: 'middle',
          sortable: true
        },
        {
          field: 'name',
          title: 'Name',
          sortable: true,
          align: 'center',
          valign: 'middle',
          editable: {
            type: 'text',
            title: 'Name',
            validate: function (value) {return '';}
          }
        },
        {
          field: 'price',
          title: 'Price',
          align: 'center',
          valign: 'middle',
          editable: {
            type: 'text',
            title: 'Price',
            validate: function (value) {return '';}
          }
        },
        {
          field: 'preview',
          title: 'Preview',
          align: 'center',
          valign: 'middle'
        }
      ],
      data: data
  });
});
.bs-checkbox {
	text-align: center !important;
	vertical-align: middle !important;
}

/* won't work:*/
.detail-icon {
	text-align: center !important;
	vertical-align: middle !important;
}
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://rawgit.com/wenzhixin/bootstrap-table/master/src/bootstrap-table.js"></script>
<script src="https://rawgit.com/vitalets/x-editable/master/dist/bootstrap3-editable/js/bootstrap-editable.js"></script>
<script src="https://rawgit.com/wenzhixin/bootstrap-table/master/src/extensions/editable/bootstrap-table-editable.js"></script>

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://rawgit.com/wenzhixin/bootstrap-table/master/src/bootstrap-table.css" rel="stylesheet"/>
<link href="https://rawgit.com/vitalets/x-editable/master/dist/bootstrap3-editable/css/bootstrap-editable.css" rel="stylesheet"/>



<div class="container">
	<div id="toolbar">
		<button id="new_btn" class="btn btn-success">
			<i class="glyphicon glyphicon-plus"></i> New
		</button>
		<button id="delete_btn" class="btn btn-danger" disabled>
			<i class="glyphicon glyphicon-trash"></i> Delete
		</button>
	</div>
	<table id="table"
			data-toolbar="#toolbar"
			data-search="true"
			data-show-pagination-switch="true"
			data-detail-view="true"
			data-detail-formatter="detail_formatter"
			data-minimum-count-columns="2"
			data-pagination="true">
	</table>
</div>

1 个答案:

答案 0 :(得分:0)

您实际上想要在表格单元格上设置这些属性,而不是单元格中的元素。

#table td {
    vertical-align: middle;
    text-align: center;
}

这应该可以解决问题。