v80 首页日程:修「右侧缺一块」——色块百分比按含刻度的整宽算了
用户:「网页端,首页,日程好像显示不全,右侧是缺一块的,是不是左侧有刻度, 导致你算宽度的时候,没算对?」—— 猜对了,而且比想的严重。 原因:色块内联 `left: calc(46px + L%)` 是**绝对**让位(46px 给刻度), `width: calc(W% - 4px)` 的百分比却相对**含刻度的整宽**(.ag-grid 481px)。 于是 100% 时色块宽 477、左端 48,右端落到 744,而卡片右边界只有 700 ⇒ 多出 44px 被 .hc-agenda 的 overflow:hidden 裁掉,日历本名正好在那截里。 日历页 .tg-block 没这个病:它左边刻度是独立的一列(.tg-col),百分比天然相对列宽。 修法(换参照系,不是调数字):新增 .ag-lanes 定位层,左让刻度、右留 2px, 色块与红线都挪进去,百分比就相对真正可用的宽度算;刻度宽度收成单一变量 --ag-gutter(50px),以后改刻度只改它。内联删掉 46px。 验证四层: - _fb_agenda_geom.py 27/0:不越界 / 左右留白 2&4px / 宽度自洽 / 与日历页同公式 - _fb_agenda_pixel.py 8/0:截图数着色列,右沿留白 5px(修前 0px) - _fb_agenda_falsify.py 11/0:退回旧写法与车道超宽都变红,合法微调仍绿 - e2e 1558/0 · 几何 428/0 · b37 5/0 同时修两处失效探针: - _fb_b37_ui.py 点 #taskAddBtn(v78 已改成 [data-tk-add-open])导致基线超时全红 - _fb_b37_falsify.py 注入锚点写死 calc(46px + ...),改到会重现该 bug 的 width 上 部署脚本加 v80 三条静态断言(已逐条注入确认会红)。
This commit is contained in:
@@ -105,6 +105,15 @@ unset($evRef);
|
||||
<span class="ag-line"></span>
|
||||
</div>
|
||||
<?php endfor; ?>
|
||||
<?php /* 🔴🔴 v80(用户 2026-10-22):「首页日程右侧是缺一块的,是不是左侧有刻度,
|
||||
导致你算宽度的时候,没算对?」—— 用户猜对了。
|
||||
⇒ 色块全部挪进这个 `.ag-lanes` 层:它左边界让出刻度(`--ag-gutter`)、
|
||||
右边留 2px,于是下面那些 `left: X%` / `width: calc(Y% - 4px)`
|
||||
的百分比相对的是**真正可用的宽度**。
|
||||
⚠️ 之前没有这一层,百分比按"含刻度的整宽"算,色块右端比卡片**多出 44px**
|
||||
被 `overflow:hidden` 裁掉 —— 那就是"缺一块"。 */
|
||||
?>
|
||||
<div class="ag-lanes">
|
||||
<?php if ($showNow): ?>
|
||||
<?php /* `data-now-min` 是给探针的零容差观测点(服务端用的分钟数),
|
||||
不影响渲染 —— 见 v45 那条注释。 */ ?>
|
||||
@@ -113,8 +122,9 @@ unset($evRef);
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
/* 日程块:按"相对第一个刻度的小时数"定位。
|
||||
⚠️ left/width 与日历页 `.tg-block` 同一套(left = 46px 刻度 + 2px,
|
||||
width = 列宽 - 4px)—— 曾经这里扣了 46px 的缝,导致两块之间空出 50px。 */
|
||||
⚠️ v80 起 `left` / `width` 的百分比**只相对车道宽**(`.ag-lanes`),
|
||||
不再自己加 46px —— 加过一次就是"两套账混算"(见上面那段注释)。
|
||||
`- 4px` 是左右各 2px 的视觉留白,与日历页 `.tg-block` 的 `- 4px` 同款。 */
|
||||
foreach ($timed as $ev):
|
||||
$agHM = explode(':', (string)$ev['time']);
|
||||
$evMin = ((int)($agHM[0] ?? 0)) * 60 + ((int)($agHM[1] ?? 0));
|
||||
@@ -143,7 +153,7 @@ unset($evRef);
|
||||
style="background: <?= e((string)$ev['color']) ?>;
|
||||
top: <?= number_format($topPct, 2) ?>%;
|
||||
height: <?= number_format($hPct, 2) ?>%;
|
||||
left: calc(46px + <?= (float)($ev['left'] ?? 0) ?>% + 2px);
|
||||
left: calc(<?= (float)($ev['left'] ?? 0) ?>% + 2px);
|
||||
width: calc(<?= (float)($ev['width'] ?? 100) ?>% - 4px);"
|
||||
title="<?= e((string)$ev['title']) ?>"
|
||||
data-cal="<?= (int)$ev['cal'] ?>">
|
||||
@@ -160,6 +170,7 @@ unset($evRef);
|
||||
<span class="ag-ev-cal"><?= e((string)$ev['calname']) ?></span>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
Reference in New Issue
Block a user