【问题标题】:User Input and Placeholder Text Alignment on Mobile移动设备上的用户输入和占位符文本对齐
【发布时间】:2021-04-04 10:07:34
【问题描述】:

我在 iOS 版本 12.4.9 上遇到了用户输入和占位符文本对齐的问题。我只在 Safari 和 Chrome 上使用 iPhone 6 测试过这个问题,这两个浏览器都存在。

在下面的图片中,

  • input 元素有一个red 边框,而::placeholder 伪元素有一个yellowgreen 边框;

  • 'NOT A PLACEHOLDER''IN' 是实际输入,而 'DIA''EMAIL ADDRESS' 是占位符。


这是基本样式和结果:

div.bottom-container > form input,
div.bottom-container > form input::placeholder {
  height: var(--fontSize);
  text-transform: uppercase;
  font-size: var(--fontSize);
  border-radius: unset; /* for mobile only */
}
body[data-mod='mobile'] > div.bottom-container > form input {
  border: solid red 1px;
}
body[data-mod='mobile'] > div.bottom-container > form input::placeholder {
  border: solid greenyellow 1px;
}


通过添加以下样式,我已经能够根据需要对齐占位符文本。 值得注意的是,input::placeholder 都必须有边框才能像这样正确对齐。

body[data-mod='mobile'] > div.bottom-container > form input {
  padding: 0;                   /* new */
  line-height: var(--fontSize); /* new */
  border: solid red 1px;
}


我想像占位符文本一样对齐输入,但我很挣扎,无法访问 Mac,因此无法访问 iOS 开发者控制台。 (值得注意的是,我没有 Android 设备,因此我什至无法知道该平台上是否存在问题。)

从上面的结果来看,input 元素似乎被裁剪了,并且具有一些无法更改的类似padding 的质量。

我知道display 在匹配移动设备上@9​​87654338@ 和button 元素的外观方面发挥了作用,我曾尝试摆弄其他属性,但无济于事。


这是删除了height 的基本样式。


我怀疑这个问题可能是由于浏览器为了可用性或用户体验而影响了input 字段的最小大小。但这只是一个猜测。我真的不知道发生了什么。

#有人知道发生了什么或如何解决吗?

【问题讨论】:

    标签: html css ios mobile browser


    【解决方案1】:

    例如,您可以将输入包装在 div 中,并将输入相对于容器对齐。

    .wrapper {
      padding: 0;
      position: relative;
      height: 20px;
      background-color: coral;
      border: 1px solid red;
    }
    
    .wrapper input {
      position: relative;
      top: 1px;
      background-color: transparent;
      border: 0;
      font-size: 20px;
      /* Uncomment following line to see input borders */
      /* border: 1px solid lawngreen; */
    }
    <div class="wrapper">
      <input type="text" value="EMAIL" />
    </div>

    【讨论】:

    • 但是文字还是错位了?抱歉,如果我不清楚,但我正在寻找一种方法使用户输入文本居中,就像占位符文本居中一样。它应该是一种响应式解决方案,而不是必须通过媒体查询不断调整像素数量。
    • 所以你的意思是,占位符的对齐方式与输入中的实际文本不同,但它们都应该在中心?
    • 是的,您看不到图片吗?我已经想出了如何完美地居中占位符文本。我想以完全相同的方式将用户输入文本居中(无需重新和未对齐现在完全居中的占位符文本)
    • 我已经在我的 Windows 机器以及我的 Android 手机和平板电脑上试用了你的样式。我无法实现您在屏幕截图上显示的结果,占位符居中,我的底部始终有较大的间隙(字体大小:100px:差异为 4px)。也许尝试改变你的字体。例如,我遇到了 Oswald 的问题,他的字母有点“错位”。编辑:我给输入绝对定位,占位符和实际文本是相同的。 jsfiddle.net/andrisjms/qyw9jgso/16
    • 因为我在 iOS 上使用和拍照。我什至无法在 Android 上进行测试,因为我没有 Android 设备。它在您的设备上看起来并没有错位。但我要解决的问题是用户输入文本和占位符文本在移动设备上的对齐方式不同:/
    猜你喜欢
    • 2013-06-30
    • 1970-01-01
    • 2019-08-19
    • 2014-12-02
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    相关资源
    最近更新 更多