这是我的HTML:
<div class="table-wrapper" ng-app="groupModule">
<table class="tablify stylable" ng-controller="listController">
<thead>
<tr>
<th>Group Name</th>
<th>Parent Group</th>
<th>Effect</th>
<th class="col-actions">Edit</th>
<th class="col-actions">Delete</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="group in groups">
<td>{{ group.groupName }}</td>
<td>{{ group.parentGroupName }}</td>
<td>{{ group.effect }}</td>
<td class="col-actions">
<button type="button" class="btn btn-info btn-edit"></button>
</td>
<td class="col-actions">
<button type="button" class="btn btn-danger btn-delete"></button>
</td>
</tr>
</tbody>
</table>
</div>
这是我的CSS:
.table-wrapper {
overflow-y: auto;
height: 75%;
}
table.stylable {
text-align: center;
width: 100%;
}
table.stylable th {
padding: 5px 0;
text-align: center;
background-color: #353535;
color: white;
border-right: 1px solid #DDD;
height: 40px;
cursor: pointer;
cursor: hand;
}
table.stylable tr {
background-color: #EEE;
}
table.stylable td {
background-color: transparent;
border-right: 1px solid #DDD;
}
table.stylable th:last-child,
table.stylable td:last-child {
border-right: 0px;
}
table.stylable tr th:first-child {
border-top-left-radius: 6px;
}
table.stylable tr th:last-child {
border-top-right-radius: 6px;
}
table.stylable tr:last-child td:first-child {
border-bottom-left-radius: 6px;
}
table.stylable tr:last-child td:last-child {
border-bottom-right-radius: 6px;
}
table.stylable tr:hover:not(.row-details):not(.selected) {
background-color: #AAA;
color: white;
}
table.stylable tr.selected {
background-color: #777;
color: white;
}
table.stylable tr:hover td {
background-color: transparent;
}
table.stylable tr.selected td {
background-color: transparent;
}
table.stylable table {
width: 100%;
}
table.stylable td,
table.stylable th
{
padding: 3px 8px;
min-width: 65px;
}
.btn-edit,
.btn-delete
{
position: relative;
margin: 5px;
border: none;
width: 60%;
padding: 0;
padding-bottom: 60%;
height: 0;
background-size: contain;
}
.btn-edit {
background-image: url(../images/Edit.png);
}
.btn-delete {
background-image: url(../images/Delete.png);
}
.col-actions
{
max-width: 80px;
}
如果有人想要,那么这里是角度代码:
var groups = [{groupCode: 1, groupName: "Branch / Divisions"},
{groupCode: 2, groupName: "Capital Account", natureOfGroup: {natureOfGroupCode: 1, nature:"Assets"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 3, groupName: "Current Assets", natureOfGroup: {natureOfGroupCode: 1, nature:"Assets"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 4, groupName: "Current Liabilities", natureOfGroup: {natureOfGroupCode: 2, nature:"Liabilities"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 5, groupName: "Direct Expenses", natureOfGroup: {natureOfGroupCode: 4, nature:"Expenses"}, effectOfGroup: {effectOfGroupCode: 3, effect: "Trading Account"}},
{groupCode: 6, groupName: "Direct Incomes", natureOfGroup: {natureOfGroupCode: 3, nature:"Incomes"}, effectOfGroup: {effectOfGroupCode: 3, effect: "Trading Account"}},
{groupCode: 7, groupName: "Fixed Assets", natureOfGroup: {natureOfGroupCode: 1, nature:"Assets"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 8, groupName: "Indirect Expenses", natureOfGroup: {natureOfGroupCode: 4, nature:"Expenses"}, effectOfGroup: {effectOfGroupCode: 2, effect: "Profit & Loss Account"}},
{groupCode: 9, groupName: "Indirect Incomes", natureOfGroup: {natureOfGroupCode: 3, nature:"Incomes"}, effectOfGroup: {effectOfGroupCode: 2, effect: "Profit & Loss Account"}},
{groupCode: 10, groupName: "Investments", natureOfGroup: {natureOfGroupCode: 1, nature:"Assets"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 11, groupName: "Loans (Liability)", natureOfGroup: {natureOfGroupCode: 2, nature:"Liabilities"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 12, groupName: "Misc. Expenses (Asset)", natureOfGroup: {natureOfGroupCode: 1, nature:"Assets"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 13, groupName: "Purchase Accounts", natureOfGroup: {natureOfGroupCode: 4, nature:"Expenses"}, effectOfGroup: {effectOfGroupCode: 3, effect: "Trading Account"}},
{groupCode: 14, groupName: "Sales Accounts", natureOfGroup: {natureOfGroupCode: 3, nature:"Incomes"}, effectOfGroup: {effectOfGroupCode: 3, effect: "Trading Account"}},
{groupCode: 15, groupName: "Suspense A/c", natureOfGroup: {natureOfGroupCode: 2, nature:"Liabilities"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 16, groupName: "Bank Accounts", parentGroupCode: 3, natureOfGroup: {natureOfGroupCode: 1, nature:"Assets"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 17, groupName: "Bank OD A/c", alias: "Bank OCC A/c", parentGroupCode: 11, natureOfGroup: {natureOfGroupCode: 2, nature:"Liabilities"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 18, groupName: "Cash-in-hand", parentGroupCode: 3, natureOfGroup: {natureOfGroupCode: 1, nature:"Assets"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 19, groupName: "Deposits (Asset)", parentGroupCode: 3, natureOfGroup: {natureOfGroupCode: 1, nature:"Assets"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 20, groupName: "Duties & Taxes", parentGroupCode: 4, natureOfGroup: {natureOfGroupCode: 2, nature:"Liabilities"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 21, groupName: "Loans & Advances (Asset)", parentGroupCode: 3, natureOfGroup: {natureOfGroupCode: 1, nature:"Assets"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 22, groupName: "Provisions", parentGroupCode: 4, natureOfGroup: {natureOfGroupCode: 2, nature:"Liabilities"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}},
{groupCode: 23, groupName: "Reserves & Surplus", alias: "Retained Earnings", parentGroupCode: 2, natureOfGroup: {natureOfGroupCode: 1, nature:"Assets"}, effectOfGroup: {effectOfGroupCode: 1, effect: "Balance Sheet"}}];
angular.module('groupModule', [])
.controller("listController", function($scope){
$scope.groups = groups.map(function(g){ return {
groupCode: g.groupCode,
groupName: g.groupName,
parentGroupName: groups.filter(function(x){ return x.groupCode == g.parentGroupCode; })[0] == undefined ? 'Primary' : groups.filter(function(x){ return x.groupCode == g.parentGroupCode; })[0].groupName,
nature: g.natureOfGroup == undefined ? '' : g.natureOfGroup.nature,
effect: g.effectOfGroup == undefined ? '' : g.effectOfGroup.effect
}});
});
这是JSFiddle再现问题:
答案 0 :(得分:3)
对于表格单元格,应使用width
属性,因为表格单元格的“min-width”和“max-width”未定义。请参阅specification:
'min-width'和'max-width'对表,内联表的影响, 表单元格,表格列和列组未定义。
您必须记住,单元格也会缩小到给定宽度以下,因为CSS会根据表格的宽度和单元格内容来计算单元格的宽度。
所以你可以使用fixed table layout什么会改变宽度计算背后的算法。
但我通常做的是使用div
元素创建自己的网格,而不是使用表格(因为它们的奇怪行为)。
答案 1 :(得分:0)
这种情况正在发生,因为您已经在表格中应用了width:100%
,td或th将决定它们的宽度是否与表格宽度相关。
为此,您必须从表中删除width:100%
,然后才能在td / th
max-width
或min-width
看到这个小提琴:https://jsfiddle.net/n7qmt8wt/3/
人们用于桌子的另一个好选择是
table {
width: 100%;
table-layout: fixed;
}
table-layout CSS属性定义了用于布置表格单元格,行和列的算法。
固定价值: 表和列宽度由table和col元素的宽度或第一行单元格的宽度设置。后续行中的单元格不会影响列宽。
这完全取决于您是否使用此功能,但这是一个很好的方法,可以保持表格100%
与每个<td>
或<th>
相同的大小。