2.0 KiB
2.0 KiB
@g3soft/ui
| @g3soft/ui |
|---|
| patch |
G3Table:修两个编辑态底色/描边的视觉问题(都与「select 展开后焦点被移进浮层」有关)。
- 修复:
select编辑格的底色会变成选区色(浅蓝)而不是基色。 编辑格白底的判据原先写在 CSS 的td:focus-within上,而G3Select展开时会把 DOM 焦点移进下拉浮层(浮层Teleport到body),那一刻:focus-within立刻失效,底色退回库的td[data-cs-s] { background-color: var(--cs-bgc) }。症状是「时白时不白」——取决于此刻焦点在触发器还是浮层里;input没有浮层,所以只有select会这样。- 判据改为编辑器上的标记类(
is-cell-editing,由内容节点带出,与「按行禁用的灰底」「校验态」同一套路子),td:has(> …)精确命中该格,与焦点在格内 / 浮层 / 换格瞬间落到body都无关。 - 焦点环同样补上这个标记(
:focus-within与标记取并集):编辑格始终有环,不再随焦点漂移。
- 判据改为编辑器上的标记类(
- 修复:冻结列上的选中格没有选中描边(蓝色边框)。 冻结列的「行状态叠色」用的是
box-shadow,而库的选区描边(td[data-cs-s]的 4 个方向 inset)也在box-shadow上 —— 单值属性,只写叠色就会把选中框整体替换掉。非冻结列没有这条规则,所以只有冻结列会缺,很容易被当成「选中态没生效」。现在叠色规则连同选区描边一起写。 - 冻结列的编辑格不再叠行状态色:与普通列一致地保持「纯基色 + 焦点环」。否则同一行里冻结列的编辑格带行色、普通列的却是纯色,一眼看得出不一致。
- 两条都由真浏览器 e2e 锁住(
e2e/table.spec.ts):select那条必须在浮层已夺焦的状态下断言(否则测不出),冻结列那条断言选中格的box-shadow里确实含有选区描边色、编辑格带 2px 焦点环。摘掉修复后两条都会红(实测)。