el-input-number 如何添加单位

需求原型图上,el-input-number的文本框里要加上单位:

查看element-ui的文档,好像没有提供类似的配置。于是自己利用css的伪类选择器::after实现了:

<el-input-number size="small" class="my-el-input-number"></el-input-number> 

<el-input-number size="small" class="my-el-input-number"></el-input-number>

css:

.my-el-input-number {
    position: relative;
}
.my-el-input-number::after {
    content: '%';
    display: inline-block;
    height: 20px;
    line-height: 20px;
    width: 20px;
    text-align: center;
    position: absolute;
    right: 32px;
    top: 50%;
    transform: translateY(-50%);
}
.my-el-input-number .el-input__inner{ // 不加这行的话,当文本框里数值很大时,会和单位重叠
    padding-left: 30px;
    padding-right: 48px;
}

源代码: 

.my-el-input-number {
    position: relative;
}
.my-el-input-number::after {
    content: '%';
    display: inline-block;
    height: 20px;
    line-height: 20px;
    width: 20px;
    text-align: center;
    position: absolute;
    right: 32px;
    top: 50%;
    transform: translateY(-50%);
}
.my-el-input-number .el-input__inner{ // 不加这行的话,当文本框里数值很大时,会和单位重叠
    padding-left: 30px;
    padding-right: 48px;
}

效果图如下:

后来,又发现另外一个地方也需要用到,可是单位不一样,重复写样式太麻烦,于是优化了一版,将单位当作变量传递进css中,可以做到一段css满足多个不同单位的需求。

<el-input-number size="small" data-unit="%" class="my-el-input-number" />

HTML源代码: 

<el-input-number size="small" data-unit="%" class="my-el-input-number" />

.my-el-input-number[data-unit] {
    --el-input-number-unit-offset-x: 35px;
    position: relative;
}
.my-el-input-number[data-unit]::after {
    content: attr(data-unit);
    height: 100%;
    display: flex;
    align-items: center;
    position: absolute;
    top: 0;
    right: var(--el-input-number-unit-offset-x);
    color: #999999;
}
.my-el-input-number[data-unit] .el-input__inner {
    padding-left: 30px;
    padding-right: calc(var(--el-input-number-unit-offset-x) + 12px);
}

css源代码: 

.my-el-input-number[data-unit] {
    --el-input-number-unit-offset-x: 35px;
    position: relative;
}
.my-el-input-number[data-unit]::after {
    content: attr(data-unit);
    height: 100%;
    display: flex;
    align-items: center;
    position: absolute;
    top: 0;
    right: var(--el-input-number-unit-offset-x);
    color: #999999;
}
.my-el-input-number[data-unit] .el-input__inner {
    padding-left: 30px;
    padding-right: calc(var(--el-input-number-unit-offset-x) + 12px);
}

 data-unit传%就显示%,传G就显示G。

 如果帮助到你了,希望留下一个赞👍吧,那是我继续前进的动力

  • 47
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 可以在el-input-number后面加上单位,例如:el-input-number v-model="num" controls position="right" :min="" :max="100" :step="1" suffix="%". 这样输入框后面就会显示一个百分号作为单位。 ### 回答2: 在使用el-input-number时,有时候我们需要在输入框后面加上单位,比如输入身高时,需要加上“cm”单位。这样不仅可以让用户清楚知道输入框需要输入的单位,而且还可以为用户提供更加友好的交互体验。 为了在el-input-number后面加上单位,我们可以使用自定义输入控件功能。首先,我们需要在el-input-number组件上添加一个slot,用于承载我们自定义的输入框,如下: ``` <el-input-number v-model="value"> <template slot="append">cm</template> </el-input-number> ``` 这样,我们就可以在输入框后面添加一个“cm”单位。但是,在实际应用中,我们可能需要根据不同的输入框动态设置单位。为了实现这个功能,我们可以将单位作为一个prop传递给自定义输入框组件,然后在slot中使用该prop,如下: ``` <template> <div class="custom-input"> <el-input-number v-model="value"> <template slot="append">{{ unit }}</template> </el-input-number> </div> </template> <script> export default { props: { unit: { type: String, default: '' } }, data() { return { value: '' } } } </script> ``` 这样,我们就可以根据具体需要动态设置不同的单位了。同时,我们还可以在custom-input组件中添加一些其他的逻辑,比如根据输入框的值进行一些计算等等。最终的效果如下: ``` <custom-input unit="cm"></custom-input> <custom-input unit="kg"></custom-input> ``` 通过上述方式,我们可以为el-input-number添加单位,从而提高交互体验。同时,我们还可以在自定义输入框组件中添加其他的逻辑和功能,满足不同的业务需求。 ### 回答3: el-input-number是一个element-ui中的组件,可以用于输入数字。它通常用于需要输入数字的表单中,如购买数量、年龄、身高等等。 在实际使用中,有时候需要在输入数字的后面加上单位,比如:“10元/个”、“100cm”、“50岁”等等。这样做可以方便用户更加准确地输入数据。 在el-input-number加上单位可以通过以下几个步骤实现: 1. 使用el-input组件的append或prepend属性,添加单位。 2. 通过设置el-input-number组件的suffix或prefix属性,添加单位。suffix表示添加到数值后面,prefix表示添加到数值前面。 3. 使用slot-suffix或slot-prefix插槽,添加自定义的单位。 例如,我们可以通过以下方式添加单位“元/个”: ``` <el-input-number v-model="num" :step="1" :precision="0" :controls-position="'right'"> <template slot-suffix>元/个</template> </el-input-number> ``` 在上面的代码中,我们通过提供一个名为slot-suffix的插槽,在输入的数字后面添加了文字“元/个”。 总之,通过在el-input-number组件中添加单位,可以让用户更加准确地输入数据,提高用户的体验。通过以上几种方式,我们可以实现不同种类的单位后缀和前缀,可以根据具体的需求进行选择和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿小野

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值