在项目详情页的订单创建板块中,尾款结算模块的每个结算卡片上的按钮在鼠标悬浮时会出现文字显示异常的问题。
文件: settlement-card.scss
添加全局 Tooltip 样式:
z-index: 9999
确保 tooltip 在最上层pointer-events: none
防止 tooltip 影响鼠标事件设置最大宽度和自动换行
::ng-deep {
.mat-mdc-tooltip {
font-size: 12px !important;
background-color: rgba(97, 97, 97, 0.95) !important;
color: white !important;
padding: 6px 12px !important;
border-radius: 4px !important;
max-width: 250px !important;
word-wrap: break-word !important;
z-index: 9999 !important;
pointer-events: none !important;
}
}
文件: settlement-card.scss
修复按钮标签样式:
.mdc-button__label
使用 inline-flex
布局overflow: hidden
防止内容溢出text-overflow: ellipsis
处理长文本确保 ripple 效果的 z-index
低于按钮内容
.mat-mdc-button,
.mat-mdc-raised-button,
.mat-mdc-outlined-button {
overflow: hidden !important;
.mdc-button__label {
display: inline-flex !important;
align-items: center !important;
gap: 4px !important;
position: relative !important;
z-index: 1 !important;
overflow: hidden !important;
text-overflow: ellipsis !important;
white-space: nowrap !important;
}
}
文件: settlement-card.scss
优化操作列样式:
position: relative
和 overflow: visible
确保 tooltip 正常显示为 .action-buttons
设置正确的层级关系
.col-actions {
display: flex;
justify-content: center;
align-items: center;
min-width: 200px;
max-width: 100%;
position: relative;
overflow: visible;
.action-buttons {
display: flex;
flex-wrap: wrap;
gap: 6px;
justify-content: center;
align-items: center;
width: 100%;
position: relative;
z-index: 1;
}
}
文件: settlement-card.scss
按钮基础样式优化:
inline-flex
布局确保内容对齐line-height: 1
防止垂直偏移mat-icon
和 mat-spinner
添加 flex-shrink: 0
防止被压缩确保悬浮时 z-index
提升到 2
button {
font-size: 11px;
padding: 6px 12px;
min-width: 70px;
height: 32px;
border-radius: 6px;
transition: all 0.2s ease;
position: relative;
overflow: hidden;
white-space: nowrap;
display: inline-flex;
align-items: center;
justify-content: center;
line-height: 1;
&:hover:not(:disabled) {
transform: translateY(-1px);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
z-index: 2;
}
}
文件: settlement-card.html
为所有带 tooltip 的按钮添加以下属性:
matTooltipPosition="above"
- 设置 tooltip 显示在按钮上方[matTooltipShowDelay]="500"
- 添加 500ms 延迟,避免误触发修改的按钮:
settlement-card.scss
- 样式修复settlement-card.html
- Tooltip 配置优化修复后的效果:
基础测试:
不同状态测试:
响应式测试:
交互测试: