在企业微信侧边栏中打开"创建改图任务"弹窗后,"涉及空间"选择区域:
问题截图:勾选框在盒子中间,左右两侧留白,文字不可见
问题:.space-selector使用grid布局,但未明确设置子项对齐方式
.space-selector {
display: grid;
// ❌ 缺少 justify-items 设置
// ❌ 缺少 align-items 设置
}
结果:
.space-item)可能被居中对齐.space-item在grid单元格中居中显示问题:.space-item使用flex布局,但未设置justify-content
.space-item {
display: flex;
align-items: center; // ✅ 有垂直居中
// ❌ 缺少 justify-content(水平对齐)
}
默认行为:justify-content: flex-start(左对齐)
但是:如果父容器grid设置了居中对齐,会覆盖flex的默认行为
问题:span元素未明确设置text-align
span {
flex: 1;
// ❌ 缺少 text-align: left
}
结果:文字可能继承父元素的对齐方式
位置:.space-selector
.space-selector {
display: grid;
justify-items: stretch; // ✅ grid子项拉伸填满单元格(关键!)
align-items: start; // ✅ grid子项顶部对齐
@media (max-width: 480px) {
justify-items: stretch; // ✅ 强化企微端设置
}
}
效果:
.space-item会拉伸到grid单元格的100%宽度位置:.space-item
.space-item {
display: flex;
align-items: center; // ✅ 垂直居中
justify-content: flex-start; // ✅ 强制左对齐(关键修复!)
width: 100%; // ✅ 占满宽度
@media (max-width: 480px) {
justify-content: flex-start; // ✅ 强化企微端设置
}
}
效果:
位置:span
span {
flex: 1;
text-align: left; // ✅ 文字左对齐
@media (max-width: 480px) {
text-align: left; // ✅ 强化企微端设置
}
}
效果:
删除:.space-item的min-width: 0
.space-item {
// ❌ 删除 min-width: 0(会导致被压缩到极小)
width: 100%; // ✅ 保留width: 100%
}
效果:
.space-item不会被压缩到极小宽度.space-selector (grid)
↓
(缺少 justify-items: stretch)
↓
.space-item 可能居中显示
↓
(缺少 justify-content: flex-start)
↓
勾选框和文字居中排列 ❌
↓
文字看不到 ❌
.space-selector (grid)
↓
justify-items: stretch ✅
↓
.space-item 填满grid单元格 ✅
↓
justify-content: flex-start ✅
↓
勾选框和文字左对齐 ✅
↓
文字完整可见 ✅
| 选择器 | 属性 | 值 | 说明 |
|---|---|---|---|
.space-selector |
justify-items |
stretch |
grid子项拉伸填满 |
.space-selector |
align-items |
start |
grid子项顶部对齐 |
.space-item |
justify-content |
flex-start |
flex内容左对齐 |
.space-item |
width |
100% |
占满grid单元格 |
span |
text-align |
left |
文字左对齐 |
┌────────────────────────┐
│ │
│ ☑ [空白] │ ← 勾选框居中,文字看不到
│ │
└────────────────────────┘
┌────────────────────────┐
│ ☑ 客厅 │ ← 勾选框左侧,文字清晰可见
└────────────────────────┘
┌────────────────────────┐
│ ☐ 主卧室(带卫生间) │ ← 长名称自动省略
└────────────────────────┘
justify-items: start:子项左对齐justify-items: center:子项居中对齐 ❌(这是问题根源)justify-items: stretch:子项拉伸填满 ✅(我们使用这个)justify-items: end:子项右对齐justify-content: flex-start:内容左对齐 ✅(我们使用这个)justify-content: center:内容居中对齐 ❌(问题根源)justify-content: flex-end:内容右对齐justify-content: space-between:内容两端对齐text-align: left:文字左对齐 ✅(我们使用这个)text-align: center:文字居中 ❌(问题根源)text-align: right:文字右对齐在浏览器开发者工具中:
.space-selector {
/* 应该看到 */
justify-items: stretch;
align-items: start;
}
在浏览器开发者工具中:
.space-item {
/* 应该看到 */
justify-content: flex-start;
width: 100%;
}
在浏览器开发者工具中:
span {
/* 应该看到 */
text-align: left;
}
在企业微信开发者工具中:
.space-item元素修改内容:
.space-selector:添加justify-items: stretch和align-items: start.space-item:添加justify-content: flex-start,移除min-width: 0span:添加text-align: left修改行数:
ng build yss-project --base-href=/dev/yss/
.\deploy.ps1
错误做法:
.space-selector {
display: grid;
// ❌ 依赖默认对齐方式
}
正确做法:
.space-selector {
display: grid;
justify-items: stretch; // ✅ 明确设置水平对齐
align-items: start; // ✅ 明确设置垂直对齐
}
justify-items: stretchjustify-content: flex-starttext-align: left在@media (max-width: 480px)中重复设置关键属性,确保生效。
修复完成时间:2025-11-30 13:00
修复人员:开发团队
测试状态:✅ 待部署验证
影响范围:企业微信侧边栏 - 创建改图任务弹窗
优先级:🔥 高(严重影响用户操作)
问题类型:Grid/Flex对齐错误