<input />中的右对齐占位符

时间:2018-10-09 20:32:40

标签: html css formatting placeholder

我有一个文本输入,我想专门用于货币。在文本字段中,应显示[$ Other CAD]。“ $ Other”应左对齐,“ CAD”应右对齐,我目前在“ $ Other”和“ CAD”之间只有一堆空格。对于不同的浏览器等而言,这不是理想的选择。是否有一种简单的方法来仅使占位符的“ CAD”部分正确对齐,以便无论浏览器如何都始终适合?另外,我可以为占位符设置两种不同的文本颜色吗?例如,将“ $”和“ CAD”设为灰色,将“其他”设为黑色

<style>
  .donation-amount-input {
    height: 65px;
    font-size: 34px;
  }
  .form-control::placeholder {
    font-size: 34px;
  }
  #S {
    color: #aaaaaa;
    position: absolute;
    font-size: 36px;
    padding-left: 10px
  }
  #Other {
    position: absolute;
    font-size: 36px;
    padding-left: 35px;
  }
  #CAD {
    color: #aaaaaa;
    position: absolute;
    font-size: 36px;
    padding-left: 40%;
  }
</style>
<body>
  <p onclick="fakePlaceholder()" id="S">$</p>
  <p onclick="fakePlaceholder()" id="Other">Other</p>
  <p onclick="fakePlaceholder()" id="CAD">CAD</p>
  <input 
  type="text" 
  onselect="fakePlaceholder()"
  class="form-control donation-amount-input" 
  id="other-amount"
  />
</body>
<script>
  function fakePlaceholder() {
    var S = document.querySelector('S');
    S.style.display = 'none';
    var Other = document.querySelector('Other');
    Other.style.display = 'none';
    var CAD = document.querySelector('CAD');
    CAD.style.display = 'none';
  }
</script>

1 个答案:

答案 0 :(得分:1)

您无法使用占位符,因此必须使用javascript创建一个伪造的效果。您必须添加三个元素:一个用于$,一个用于Other和一个用于CAD。然后,您可以设置其样式并在输入中使用position: absolute;将其放置以创建伪造的占位符。 (不要忘记:您不能在输入中放入html元素,因此您必须将输入和三个元素包装到另一个元素中,以便根据它来放置所有内容。)

在那之后,当有人单击或移动键盘时,您将不得不使用javascript隐藏该假占位符。

尝试一些操作,如果需要帮助,请回到这里,向我们展示您的代码。