如何将 MDC Web 的 Filled TextField 的高度设置得更小,但仍能让浮动标签正确浮动?

How do I set the height of MDC Web's Filled TextField to be smaller, but still allowing the floating label to float correctly?

我发现你可以 set the height of a MDC Web's Filled Text Field using the SASS mixin @include height(20px)。但是,使用上述 SASS mixin 设置高度后,显示的浮动标签就消失了。

进一步检查,它似乎设置为 display: none。当我手动设置为 display: block 时,它没有正确浮动并且离输入文本太近了。

如何使文本字段的高度变小,但仍能正确显示浮动标签?

这个在文档中没有提到,但是 height mixin 实际上有不止一个参数:

@mixin height(
  $height,
  $minimum-height-for-filled-label: variables.$minimum-height-for-filled-label,
  $query: feature-targeting.all()
) { ... }

第二个参数设置显示浮动标签的最小高度。如果高度小于最小值,则不会显示标签。默认值为 52px。所以我认为标签隐藏是故意的。

附加信息

我尝试将 $minimum-height-for-filled-label 参数设置为较小的值,但文本字段的行为被破坏了。可能有一种方法可以通过覆盖其他一些 SCSS 变量来修复行为,或者它不适合用于太小的高度......或者只是错误。

或者您可以尝试使用 density mixin。对于密度 -1 它仍然显示浮动标签,但高度比默认值小一点。恕我直言,这种方式更符合 Material 设计指南。

这里是 link 示例 - https://codesandbox.io/s/mdc-textfield-height-test-yj6lm