html - 使用填充和垂直对齐在输入中添加货币

标签 html css

我需要一个包含 € 或 $ 货币的输入。我有一个带有填充的输入(没有填充我没问题)

如何实现完美的垂直居中?

enter image description here

我试过这种方法,但没有得到最佳结果:

1) "margin-top:auto"和 "margin-bottom: auto"方法:

div {position:relative}

input {padding: 1em}

.currency {
 position:absolute;
 right:0.4em;
 height:50%;
 top:0;
 bottom:0;
 margin-top:auto;
 margin-bottom:auto
}

<div>
 <input type="text">
 <span class="currency">€</span>
</div>

2) 固定高度和 margin-top negative:

div {position:relative}

input {padding: 1em}

.currency {
  position:absolute;
  right:0.4em;
  height:3em;
  top:50%;
  margin-top:-1.5em;
 }

<div>
 <input type="text">
 <span class="currency">€</span>
</div>

在这两种情况下,垂直对齐都不是完美的。

有什么想法吗?

最佳答案

您可以使用position: absolutetransform: translateY(-50%)

div {
  position: relative;
  display: inline-block;
}
input {
  padding: 1.2em;
  text-align: right;
}
.currency {
  position: absolute;
  right: 5px;
  top: 50%; 
  transform: translateY(-50%);
}
<div>
  <input type="text">
  <span class="currency">€</span>
</div>

关于html - 使用填充和垂直对齐在输入中添加货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37440863/

相关文章:

javascript - 将 div 绑定(bind)到另一个 div 的右边框

javascript - php - 使用 mpdf 工具从 googlemap 内容创建 pdf

php - yii 中的下拉样式

html - div 大小调整将相邻的 div 推到错误的位置

javascript - 如何为具有相似值的动态表格行设置不同的背景颜色?

javascript - 将图像/图标添加到 chart.js 中的特定坐标

html - 如何在表格列标题处垂直旋转文本

iphone - dataWithContentsOfURL 不检索数据

html - 图片宽度动态高度叠加

css - 鼠标悬停时增加边框