fix(web): 参数表单收束 + 一句话说明改多行(按截图实测修两处失调)
用户给了真实截图,指出两处肉眼可见的不协调,逐项定位后修复:
1. 「一句话说明」是单行 input 被塞进 ~360px 的格子,placeholder
「例:全市场股息率最高的 2」直接截断 —— 内容太多、框太小。
→ 改为整宽多行 <textarea>(rows=2、min-height 64px、可纵向拉伸),
与定宽 340px 的策略名并排(.params-meta flex),窄屏自动上下堆叠;
实时字数 (N/300) 已在提示里。
2. 「太多地方没有对齐」的根因:表单铺满 ~1900px 内容区,5 列各 ~360px,
控件拉得太开;因子下拉用 1fr 撑到 ~1500px 而权重框才 118px,比例失调;
数字输入还有 max-width:180px 上限,比同行下拉窄一截。
→ .params-form 约束到 ~1100px(每列 ~210px,所有控件按 1fr 等宽,
左右边缘严格对齐);移除已多余的 max-width:180px(限宽后它反而
制造新的不等宽),数值/日期改为填满单元格;因子行首列封顶 460px、
整行限宽 720px,条件行同理(首列 ≤360px、限宽 760px);
复权口径选项去掉括号里的「股息策略推荐」(已在 hint 说明),不再截断。
验证方式也升级了:这次是**截图后用 read_image 看渲染像素**确认,而不只量几何。
对齐自检同步把 textarea(高度随行数变、本就该比单行高)排除出「同排等高 /
高度归一」比较,并把数字过宽阈值调到 240px(限宽后 ~210px 属正常)。
门禁:tsc 0 错误、图表单测 7/7、next build 成功、页面 200、
对齐自检 140/140、契约自检 59/59;/backtest 与 /strategies 截图复核通过。
This commit is contained in:
@@ -590,9 +590,12 @@ input[type="date"].input {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
/* 数值/日期字段按内容给宽度:内容只有几位数字,拉满整行既难读也难与相邻控件对齐 */
|
||||
.form-grid .field > input[type="number"].input {
|
||||
max-width: 180px;
|
||||
/* 数值/日期字段:在已限宽(.params-form ~1100px)的栅格里直接填满单元格,
|
||||
与同行的下拉/文本框等宽 → 左右边缘严格对齐。早先的 max-width:180px 在表单
|
||||
铺满整屏时有意义,限宽后反而让数字框比相邻下拉窄一截(截图实测),故移除。 */
|
||||
.form-grid .field > input[type="number"].input,
|
||||
.form-grid .field > input[type="date"].input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.field {
|
||||
@@ -634,6 +637,41 @@ input[type="date"].input {
|
||||
width: min(320px, 100%);
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
参数表单布局:把 sprawling 的多列表单收进一个可读的最大宽度。
|
||||
------------------------------------------------------------
|
||||
为什么需要:表单直接铺满 ~1900px 的内容区时,5 列各 ~360px,控件拉得太开、
|
||||
数字输入和下拉宽度还不一致(截图实测)。约束到 ~1100px 后每列 ~210px,
|
||||
所有控件按 1fr 等宽 → 同行左右边缘严格对齐,数字也不会宽得离谱。
|
||||
============================================================ */
|
||||
.params-form {
|
||||
max-width: 1100px;
|
||||
}
|
||||
|
||||
/* 策略名 + 一句话说明:定宽名 + 占满剩余宽度的多行说明 */
|
||||
.params-meta {
|
||||
display: flex;
|
||||
gap: var(--sp-4);
|
||||
align-items: flex-start;
|
||||
margin-bottom: var(--sp-4);
|
||||
}
|
||||
|
||||
.params-meta__name {
|
||||
flex: 0 0 340px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.params-meta__desc {
|
||||
flex: 1 1 auto;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.params-meta__desc textarea.input {
|
||||
min-height: 64px;
|
||||
line-height: 1.6;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.form-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
|
||||
@@ -669,9 +707,12 @@ input[type="date"].input {
|
||||
.factor-rows__head,
|
||||
.factor-row {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(150px, 1fr) 118px auto;
|
||||
/* 因子名列封顶 460px:再宽就是「momentum_60」配 1500px 下拉的失调(截图实测)。
|
||||
权重列固定,操作列按内容。整行也限宽,避免在宽屏上拉成一条长线。 */
|
||||
grid-template-columns: minmax(150px, 460px) 118px auto;
|
||||
align-items: center;
|
||||
gap: var(--sp-2);
|
||||
max-width: 720px;
|
||||
}
|
||||
|
||||
.factor-rows__head {
|
||||
@@ -690,12 +731,13 @@ input[type="date"].input {
|
||||
.cond-rows {
|
||||
display: grid;
|
||||
gap: var(--sp-2);
|
||||
max-width: 760px;
|
||||
}
|
||||
|
||||
.cond-rows__head,
|
||||
.cond-row {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(150px, 1fr) 84px minmax(96px, 140px) auto;
|
||||
grid-template-columns: minmax(150px, 360px) 84px minmax(96px, 160px) auto;
|
||||
align-items: center;
|
||||
gap: var(--sp-2);
|
||||
}
|
||||
@@ -1449,6 +1491,16 @@ button.chip:hover {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
/* 窄屏:策略名与说明上下堆叠,名占满整行 */
|
||||
.params-meta {
|
||||
flex-direction: column;
|
||||
gap: var(--sp-3);
|
||||
}
|
||||
.params-meta__name {
|
||||
flex: 1 1 auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.page-head {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user