websoft-uniapp仓库模板
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

663 lines
11 KiB

/** 全局样式及辅助类 */
@import './themes/default.less';
html {
overflow: auto;
overflow: overlay;
}
/* 辅助类 */
body {
overflow-x: hidden;
position: relative;
&.ele-body-limit-width {
min-width: @body-max-width;
.ant-form-item .ant-form-item-label {
padding: 0;
line-height: inherit;
white-space: nowrap;
text-align: right;
& > label:after {
display: block;
}
}
}
// 标题
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0;
font-weight: normal;
font-size: @font-size-lg;
}
h5 {
font-size: (@font-size-lg + 2px);
}
h4 {
font-size: (@font-size-lg + 4px);
}
h3 {
font-size: (@font-size-lg + 6px);
}
h2 {
font-size: (@font-size-lg + 8px);
}
h1 {
font-size: (@font-size-lg + 10px);
}
// 文字
.ele-text {
color: @text-color;
}
.ele-text-heading {
color: @heading-color;
}
.ele-text-secondary {
color: @text-color-secondary;
}
.ele-text-placeholder {
color: @input-placeholder-color;
}
a.ele-text,
a.ele-text-heading,
a.ele-text-secondary,
a.ele-text-placeholder {
&:hover {
color: ~`colorPalette('@{primary-color}', 5) `;
}
}
.ele-text-primary {
color: @primary-color;
}
.ele-text-success,
.ele-text-success:hover {
color: @success-color;
}
a.ele-text-success:hover {
color: ~`colorPalette('@{success-color}', 5) `;
}
a.ele-text-success:active {
color: ~`colorPalette('@{success-color}', 7) `;
}
.ele-text-warning,
.ele-text-warning:hover {
color: @warning-color;
}
a.ele-text-warning:hover {
color: ~`colorPalette('@{warning-color}', 5) `;
}
a.ele-text-warning:active {
color: ~`colorPalette('@{warning-color}', 7) `;
}
.ele-text-danger,
.ele-text-danger:hover {
color: @error-color;
}
a.ele-text-danger:hover {
color: ~`colorPalette('@{error-color}', 5) `;
}
a.ele-text-danger:active {
color: ~`colorPalette('@{error-color}', 7) `;
}
.ele-text-info,
a.ele-text-info:hover,
a.ele-text-info:active {
color: @normal-color;
}
.ele-text-delete {
text-decoration: line-through;
}
.ele-text-small {
font-size: @font-size-sm !important;
}
// 背景和边框
.ele-bg-base {
background-color: @layout-body-background !important;
}
.ele-bg-primary {
background-color: @primary-color !important;
}
.ele-bg-success {
background-color: @success-color !important;
}
.ele-bg-warning {
background-color: @warning-color !important;
}
.ele-bg-danger {
background-color: @error-color !important;
}
.ele-bg-info {
background-color: @normal-color !important;
}
.ele-bg-white {
background-color: @component-background !important;
}
.ele-border-primary {
border-color: @primary-color !important;
}
.ele-border-success {
border-color: @success-color !important;
}
.ele-border-warning {
border-color: @warning-color !important;
}
.ele-border-danger {
border-color: @error-color !important;
}
.ele-border-info {
border-color: @normal-color !important;
}
.ele-border-base {
border-color: @border-color-base !important;
}
.ele-border-split {
border-color: @border-color-split !important;
}
// 浮动
.ele-pull-left {
float: left;
}
.ele-pull-right {
float: right;
}
.ele-clear {
clear: both;
}
.ele-clear-after:after {
content: '';
clear: both;
display: block;
}
// 对齐方式
.ele-text-center {
text-align: center;
}
.ele-text-left {
text-align: left;
}
.ele-text-right {
text-align: right;
}
.ele-fluid {
width: 100% !important;
}
.ele-block {
display: block;
}
.ele-inline-block {
display: inline-block;
}
.ele-inline {
display: inline;
}
// 占位元素
em:not([class]) {
padding: 0 0.5em;
font-style: normal;
}
s:not([class]) {
padding: 0 0.125em;
font-style: normal;
}
}
/* 文字省略 */
.ele-elip {
overflow: hidden;
white-space: nowrap;
word-break: break-all;
text-overflow: ellipsis;
}
/* 单元格 */
.ele-cell {
display: flex;
&:not(.ele-cell-align-top) {
align-items: center;
}
&.ele-cell-align-bottom {
align-items: flex-end;
}
& > .ele-cell-content {
flex: 1;
box-sizing: border-box;
}
& > * + .ele-cell-content {
padding-left: @padding-sm;
}
.ele-cell-title {
color: @heading-color;
font-size: @font-size-base + 1px;
}
.ele-cell-desc {
color: @text-color-secondary;
font-size: @font-size-base - 1px;
margin-top: (@padding-xs / 2);
}
}
/* 页面容器 */
.ele-body {
padding: @padding-md;
&.ele-body-card {
padding-bottom: 0;
.ant-card {
margin-bottom: @padding-md;
}
}
}
/* 底部工具栏 */
.ele-bottom-tool {
position: fixed;
bottom: 0;
right: 0;
width: 100%;
display: flex;
align-items: center;
box-shadow: @shadow-1-up;
padding: @padding-xs @padding-md;
background: @component-background;
transition: padding-left @sidebar-transition-anim;
z-index: (@layout-z-index - 1);
.ele-bottom-tool-actions {
flex: 1;
text-align: right;
}
}
@media screen and (min-width: 768px) {
.ele-admin-sidebar + .ele-admin-body .ele-bottom-tool {
padding-left: (@sidebar-width + @padding-md);
}
.ele-layout-collapse .ele-admin-sidebar + .ele-admin-body .ele-bottom-tool {
padding-left: (@sidebar-collapse-width + @padding-md);
}
}
/* 静态表格 */
.ele-table {
width: 100%;
border-spacing: 0;
border-collapse: collapse;
background: @component-background;
thead tr {
th,
td {
background: @table-header-bg;
transition: background-color 0.25s ease;
}
}
tbody tr {
th,
td {
background: @component-background;
transition: background-color 0.25s ease;
}
}
tbody tr:hover,
&.ele-table-stripe tr:nth-child(even) {
th,
td {
background: @table-row-hover-bg;
}
}
tbody tr.ele-table-active {
th,
td {
background: @table-selected-row-bg;
}
}
th,
td {
font-weight: normal;
line-height: 23px;
padding: 12px 10px;
border-width: 0;
border-style: solid;
border-color: @table-border-color;
border-bottom-width: 1px;
text-align: left;
}
th {
color: @table-header-color;
}
// 显示边框
&.ele-table-border {
th,
td {
border-width: 1px;
}
}
// 尺寸控制
&.ele-table-medium {
th,
td {
padding-top: 10px;
padding-bottom: 10px;
}
}
&.ele-table-small {
th,
td {
padding-top: 8px;
padding-bottom: 8px;
font-size: 12px;
}
}
&.ele-table-mini {
th,
td {
padding-top: 6px;
padding-bottom: 6px;
font-size: 12px;
}
}
// 表头分割线
&:not(.ele-table-border) thead > tr > th {
position: relative;
&:not(:last-child):before {
position: absolute;
top: 50%;
right: 0;
width: 1px;
height: 1.6em;
background-color: @table-header-cell-split-color;
transform: translateY(-50%);
transition: background-color 0.3s;
content: '';
}
}
}
/* antd 组件样式调整 */
body {
// 分割线
.ant-divider {
margin: 0;
}
// modal 标题高度
.ant-modal-header {
padding: @modal-header-padding;
& > .ant-modal-title > div {
padding-right: calc(@modal-close-x-width - 20px);
}
}
.ant-modal-close-x {
width: @modal-close-x-width;
height: @modal-close-x-height;
line-height: @modal-close-x-height;
}
}
// 按钮加图标减少间距
.ele-btn-icon:not(.ant-btn-sm) {
padding-left: (@padding-sm - 2px);
padding-right: (@padding-sm - 2px);
& > .anticon + span {
margin-left: @margin-xss;
margin-right: 2px;
}
}
// 表单详情
.ele-form-detail .ant-form-item {
margin-bottom: 0;
}
@media (max-width: 575px) {
.ele-form-detail .ant-form-item-label {
line-height: @input-height-lg - 0.0001px;
padding-bottom: 0;
& > label:after {
display: inherit;
}
}
}
// 级联选择器增加高度
.ele-pop-wrap-higher .ant-cascader-menu {
height: 280px;
}
// message loading 带遮罩层
.ele-message-loading .ant-message,
.ele-message-loading-mask .ant-message {
pointer-events: auto;
}
.ele-message-loading-mask .ant-message {
background: @modal-mask-bg;
}
body .ant-message {
top: 0;
padding-top: 16px;
min-height: 100vh;
transition: background-color 0.3s;
}
// 虚拟滚动条样式优化
.rc-virtual-list-scrollbar-thumb,
.ant-select-tree-list-scrollbar-thumb {
background: @scrollbar-thumb-color !important;
&:hover {
background: @scrollbar-thumb-hover-color !important;
}
}
// table 有滚动条时加边框
.ant-table-bordered div.ant-table-body {
&:before,
&:after {
content: '';
position: absolute;
background: @border-color-split;
z-index: 2;
}
&:before {
right: 0;
top: 0;
bottom: 0;
width: 1px;
}
&:after {
bottom: 0;
left: 0;
right: 0;
height: 1px;
}
}
/* echarts 提示框圆点 */
.ele-chart-dot {
width: 10px;
height: 10px;
margin-right: 5px;
border-radius: 50%;
display: inline-block;
background: #5b8ff9;
}
.echarts > div {
max-width: 100%;
overflow: hidden;
}
/* 滚动条 */
::-webkit-scrollbar {
width: @scrollbar-thumb-size;
height: @scrollbar-thumb-size;
}
::-webkit-scrollbar-thumb {
border-radius: (@scrollbar-thumb-size / 2);
border: @scrollbar-thumb-border-size solid transparent;
background-color: @scrollbar-thumb-color;
background-clip: padding-box;
&:hover {
background-color: @scrollbar-thumb-hover-color;
}
}
::-webkit-scrollbar-track {
background: @scrollbar-track-color;
}
::-webkit-scrollbar-corner {
background: transparent;
}
// 小型滚动条
.ele-scrollbar-mini {
&::-webkit-scrollbar {
width: @scrollbar-mini-thumb-size;
height: @scrollbar-mini-thumb-size;
}
&::-webkit-scrollbar-thumb {
border-radius: (@scrollbar-mini-thumb-size / 2);
}
}
// 隐藏滚动条
.ele-scrollbar-hide::-webkit-scrollbar {
width: 0;
height: 0;
}
.ele-scrollbar-hide,
.ele-scrollbar-hover {
overflow: auto;
overflow: overlay;
}
// 鼠标滑入才显示滚动条
@media (hover: hover) and (pointer: fine) {
.ele-scrollbar-hover {
&::-webkit-scrollbar,
&.ele-scrollbar-mini::-webkit-scrollbar {
width: 0;
height: 0;
}
&:hover {
&::-webkit-scrollbar {
width: @scrollbar-thumb-size;
height: @scrollbar-thumb-size;
}
&.ele-scrollbar-mini::-webkit-scrollbar {
width: @scrollbar-mini-thumb-size;
height: @scrollbar-mini-thumb-size;
}
}
}
}
// 小尺寸设备
@media only screen and (max-width: 768px) {
::-webkit-scrollbar,
.ele-scrollbar-hover:hover::-webkit-scrollbar {
width: @scrollbar-mini-thumb-size;
height: @scrollbar-mini-thumb-size;
}
::-webkit-scrollbar-thumb {
border-radius: (@scrollbar-mini-thumb-size / 2);
}
}
// 兼容火狐浏览器
* {
scrollbar-width: thin;
scrollbar-color: @scrollbar-thumb-color transparent;
}