@fe6/water-pro
Version:
An enterprise-class UI design language and Vue-based implementation
234 lines (208 loc) • 4.38 kB
text/less
@tablePrefixCls: rc-table;
@text-color : #666;
@font-size-base : 12px;
@line-height: 1.5;
@table-border-color: #e9e9e9;
@table-head-background-color: #f7f7f7;
@vertical-padding: 16px;
@horizontal-padding: 8px;
.@{tablePrefixCls} {
position: relative;
overflow: hidden;
color: @text-color;
font-size: @font-size-base;
line-height: @line-height;
transition: opacity 0.3s ease;
.@{tablePrefixCls}-scroll {
overflow: auto;
table {
width: auto;
min-width: 100%;
}
}
.@{tablePrefixCls}-header {
overflow: hidden;
background: @table-head-background-color;
}
&-fixed-header &-body {
position: relative;
background: #fff;
}
&-fixed-header &-body-inner {
height: 100%;
overflow: scroll;
}
&-fixed-header &-scroll &-header {
box-sizing: border-box;
margin-bottom: -20px;
padding-bottom: 20px;
overflow-x: scroll;
overflow-y: scroll;
}
// https://github.com/ant-design/ant-design/issues/10828
&-fixed-columns-in-body {
visibility: hidden;
pointer-events: none;
}
.@{tablePrefixCls}-title {
padding: @vertical-padding @horizontal-padding;
border-top: 1px solid @table-border-color;
}
.@{tablePrefixCls}-content {
position: relative;
}
.@{tablePrefixCls}-footer {
padding: @vertical-padding @horizontal-padding;
border-bottom: 1px solid @table-border-color;
}
.@{tablePrefixCls}-placeholder {
position: relative;
padding: 16px 8px;
text-align: center;
background: #fff;
border-bottom: 1px solid @table-border-color;
&-fixed-columns {
position: absolute;
bottom: 0;
width: 100%;
background: transparent;
pointer-events: none;
}
}
table {
width: 100%;
text-align: left;
border-collapse: separate;
}
th {
font-weight: bold;
background: @table-head-background-color;
transition: background 0.3s ease;
}
td {
border-bottom: 1px solid @table-border-color;
&:empty::after {
visibility: hidden;
content: '.'; // empty cell placeholder
}
}
tr {
transition: all 0.3s ease;
&:hover {
background: #eaf8fe;
}
&.@{tablePrefixCls}-row-hover {
background: #eaf8fe;
}
}
th,
td {
padding: @vertical-padding @horizontal-padding;
white-space: nowrap;
}
}
.@{tablePrefixCls} {
&-expand-icon-col {
width: 34px;
}
&-row,
&-expanded-row {
&-expand-icon {
display: inline-block;
width: 16px;
height: 16px;
line-height: 16px;
text-align: center;
background: #fff;
border: 1px solid @table-border-color;
cursor: pointer;
user-select: none;
}
&-spaced {
visibility: hidden;
}
&-spaced::after {
content: '.';
}
&-expanded::after {
content: '-';
}
&-collapsed::after {
content: '+';
}
}
tr&-expanded-row {
background: #f7f7f7;
&:hover {
background: #f7f7f7;
}
}
&-column-hidden {
display: none;
}
&-prev-columns-page,
&-next-columns-page {
z-index: 1;
color: #666;
cursor: pointer;
&:hover {
color: #2db7f5;
}
&-disabled {
color: #999;
cursor: not-allowed;
&:hover {
color: #999;
}
}
}
&-prev-columns-page {
margin-right: 8px;
&::before {
content: '<';
}
}
&-next-columns-page {
float: right;
&::before {
content: '>';
}
}
&-fixed-left,
&-fixed-right {
position: absolute;
top: 0;
overflow: hidden;
table {
width: auto;
background: #fff;
}
}
&-fixed-left {
left: 0;
box-shadow: 4px 0 4px rgba(100, 100, 100, 0.1);
& .@{tablePrefixCls}-body-inner {
margin-right: -20px;
padding-right: 20px;
}
.@{tablePrefixCls}-fixed-header & .@{tablePrefixCls}-body-inner {
padding-right: 0;
}
}
&-fixed-right {
right: 0;
box-shadow: -4px 0 4px rgba(100, 100, 100, 0.1);
// hide expand row content in right fixed Table
// https://github.com/ant-design/ant-design/issues/1898
.@{tablePrefixCls}-expanded-row {
color: transparent;
pointer-events: none;
}
}
&&-scroll-position-left &-fixed-left {
box-shadow: none;
}
&&-scroll-position-right &-fixed-right {
box-shadow: none;
}
}