From 5a080f502dbfc2b925cd43bc6328a3a272023499 Mon Sep 17 00:00:00 2001 From: chenxing Date: Fri, 16 Oct 2026 15:27:26 +0800 Subject: [PATCH] =?UTF-8?q?style(=E4=B8=80=E5=91=A8=E5=AE=89=E6=8E=92?= =?UTF-8?q?=E5=B0=8F=E7=BB=84=E4=BB=B6):=20=E9=80=89=E4=B8=AD=E6=80=81?= =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E8=AE=A9=E5=87=BA=E9=97=B4=E8=B7=9D=E3=80=81?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=88=97=E7=A7=BB=E5=88=B0=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E8=A1=8C=E6=9C=80=E5=8F=B3=E7=AB=AF=E3=80=81=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E6=94=B9=2014px?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ① 选中态不再「挤」:星期数 加 padding-bottom:3px(数字位置不动,把今日方块与 圆点整体让下去)+ 圆点 bottom -8→-11px(今日格 -5.5→-8.5px,七格仍同线) ⇒ 星期数↔方块 4.1→6.6px、方块↔圆点 1.5→4.5px,七日条 63→66px ⚠️ 用 padding-bottom 而非 margin-bottom:后者会与 b 的 margin-top 折叠 (max(正)+min(负)),今日格 −1px 与其余格 2px 走不同结果 ⇒ 今日数字偏低 1.75px ② 时间列移到信息行最右端:列表 DOM 由 .line[标题+时间] 改为 content(独占一行) + .meta[.meta-txt + .time];.meta 用 flex space-between、 .time flex:0 0 auto;无时间不留位。标题可用宽度 232→314px(带时间那条) ③ 标题字号 15→14px(信息行 12.5px 不变) ④ 结构化骨架同步:星期条占位改 24px 外框(21 行盒 + 3 下留白)+ 内层 ::before 画 10px 条; ⚠️ 内层定位用父级 padding-top,不用子元素 margin-top(会塌出父级多 5.5px) harness 真组件复测:四态 367.58/367.59/367.58/367.58(差 0.01px);今日墨迹中心 87 vs 其余 87.25(0.25px);七格圆点中心全 107.5;.time 父级=meta、content 14px/block。 --- src/components/widgets/WeekplanWidget.vue | 86 +++++++++++++++-------- 1 file changed, 55 insertions(+), 31 deletions(-) diff --git a/src/components/widgets/WeekplanWidget.vue b/src/components/widgets/WeekplanWidget.vue index f1555d2..4e3ad15 100644 --- a/src/components/widgets/WeekplanWidget.vue +++ b/src/components/widgets/WeekplanWidget.vue @@ -59,12 +59,14 @@
  • -
    - {{ item.contents }} - {{ item.times }} + + {{ item.contents }} + +
    + {{ metaOf(item) || "-" }} + {{ item.times }}
    - -
    {{ metaOf(item) || "-" }}
{{ currentDayLabel }}
@@ -372,6 +374,15 @@ $wk-primary-dark: #4864d8; // 底部留出圆点位置:整周无安排时也占位,日期条高度恒定 padding: 4px 0 11px; cursor: pointer; + // 星期数:块级行盒 + 下留 3px —— 把今日方块与圆点整体让下去,数字本身位置不动 + // (方块 28px 上下居中于数字,不加留白时上沿贴「星期数」4.1px、下沿贴圆点 1.5px) + // ⚠️ 必须用 padding-bottom 而非 margin-bottom:后者会与 b 的 margin-top 折叠 + //(max(正) + min(负)),今日格的 −1px 与其余格的 2px 会走出不同结果 ⇒ 今日数字偏低 1.75px + > span { + display: block; + line-height: 21px; + padding-bottom: 3px; + } b { display: block; font-size: 15px; @@ -381,12 +392,12 @@ $wk-primary-dark: #4864d8; // 圆点改锚数字块(不再锚格子):格子被今日格 28px 方块拉高时圆点不再跟着沉 position: relative; } - // 圆点绝对定位在数字块下方 6px(bottom:-8px ⇒ 点中心 = b 底边 + 6,与线上旧位一致) + // 圆点绝对定位在数字块下方 6px(bottom:-11px ⇒ 点中心 = b 底边 + 9,与留白一起把圆点让到方块下方) b::after { content: ""; position: absolute; left: 50%; - bottom: -8px; + bottom: -11px; transform: translateX(-50%); width: 4px; height: 4px; @@ -417,9 +428,9 @@ $wk-primary-dark: #4864d8; color: #fff; border-radius: 4px; } - // 方块比数字行盒高 5.5px,圆点随之低 2.5px ⇒ 上收 2.5px,七格圆点同线(格顶 + 55.5) + // 方块比数字行盒高 5.5px,圆点随之低 2.5px ⇒ 上收 2.5px,七格圆点同线 b::after { - bottom: -5.5px; + bottom: -8.5px; } } } @@ -473,17 +484,31 @@ $wk-primary-dark: #4864d8; overflow: hidden; padding: 6px 0; border-bottom: 1px solid #f2f4f7; - font-size: 15px; color: #344449; &:last-child { border-bottom: 0; } - .line { - display: flex; - align-items: center; - } } + // 标题独占一行(时间已移到信息行):14px,右侧不再被时间占宽 .content { + display: block; + font-size: 14px; + color: #344449; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + // 信息行:地点 / 负责人 / 参与人 在左,时间贴最右端;无时间时信息文本照常占满 + .meta { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; + margin-top: 2px; + font-size: 12.5px; + color: #98a2b0; + } + .meta-txt { flex: 1 1 auto; // ⚠️ 必须显式 min-width:0:flex 项默认 min-width:auto,遇 nowrap 长文本 // 会以 max-content 为下限而不收缩 ⇒ text-overflow 永不触发 @@ -495,21 +520,11 @@ $wk-primary-dark: #4864d8; .time { flex: 0 0 auto; color: #6e7c87; - margin-left: 10px; - // 汉字型时间(全天/放假)降一档:同字号下汉字字面高 ≈1.29 × 数字(15px 实测 18px vs 14px), - // 15px 时观感比「14:00-15:00」明显偏大 + // 汉字型时间(全天/放假)降一档:同字号下汉字字面高 ≈1.29 × 数字(15px 实测 18px vs 14px) &.is-cjk { font-size: 13px; } } - .meta { - margin-top: 2px; - font-size: 12.5px; - color: #98a2b0; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } } /* ---------- 加载态:结构化骨架(与内容逐段同构同高,换周不塌不跳) ---------- 标题 40 + 七日条 63 + 列表 171 + 备注区 66.59 + 根部 padding 16 ≈ 364.6px, @@ -549,13 +564,22 @@ $wk-primary-dark: #4864d8; text-align: center; font-size: 14px; padding: 4px 0 11px; - // 星期条:inline-block 10px 高,行盒由 14px 字体的 21px strut 决定(与真实星期同行高) + // 星期条:外框 24px 与真实星期数同高(21px 行盒 + 3px 下留白),条本身 10px 居上 + // ⚠️ 内层条的定位必须用父级 padding-top,不能用子元素 margin-top: + // 父级无 padding/border 时子元素上边距会「塌」到父级外面,凭空多出 5.5px 高度 .w { - display: inline-block; + display: block; width: 14px; - height: 10px; - border-radius: 3px; - background: var(--wk-skel); + height: 24px; + margin: 0 auto; + padding-top: 5.5px; + &::before { + content: ""; + display: block; + height: 10px; + border-radius: 3px; + background: var(--wk-skel); + } } b { display: block; @@ -595,7 +619,7 @@ $wk-primary-dark: #4864d8; border-bottom: 0; } .l { - height: 22.5px; + height: 21px; display: flex; align-items: center; gap: 10px;