时间:2021-05-26
业务需求,输入文字,后面的元要紧随其后,奈何input默认是有宽度,我想要达到,输入文字,动态改变input的宽度,试了很多方法,目前自己琢磨一种,有遇到问题的可以参考一下,
直接贴代码
<div class="textcontain"> <input type="text" v-model.number="item.cardComboMoney" maxlength="5" placeholder="设定数值" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" :disabled='disabled' :style="{width:text(item.cardComboMoney)}" > <span class="textshow" v-if="item.cardComboMoney!=0&&item.cardComboMoney!=''" >元</span> </div>computed: { text () { return function (value) { if (value == '' || value == 0) { return '100%' } else { return String(value).length * 0.32 + 'rem' } } } },利用计算属性,计算当前字体的长度,我这里最多允许输入5个字符的长度,所以这样计算影响不大
补充知识:input宽度自适应(解决文字占位宽度不同所引起的问题)
问题描述:
input在输入的时候,要能让input的宽度随着输入的文字自动增宽。
思路1:获取文字的内容,然后通过文字.length * font-size计算文字的宽度,但是由于文字“i”与“中”显然占位宽度不同而引起宽度差
思路:
设置一个隐藏的span,使其font属性与input统一,然后获取span的宽度,赋值给input
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script> <title>input宽度自适应</title> <style> body { font-size: 16px; font-family: Arial, Helvetica, sans-serif; } #my-input { width: 20px; padding: 0; font-size: 16px; font-family: Arial, Helvetica, sans-serif; } #my-span { position: absolute; left: 0; visibility: hidden; } </style></head> <body> <!-- 思路:将文字内容赋值给隐藏的span,然后将input的宽度设置为span的宽度 --> <span id="my-span"></span> <input type="text" id="my-input" oninput="changeWidth()"> <script> function changeWidth() { var mySpan = $("#my-span"); var myInput = $("#my-input"); mySpan.html(myInput.val()); //给span赋值 if (mySpan.width() > 20) { myInput.css('width', mySpan.width()); } } </script></body> </html>以上这篇Vue实现input宽度随文字长度自适应操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、css实现左侧宽度固定右侧宽度自适应1、定位自适应*{padding:0;margin:0;}.left{background:red;width:200p
CSS两列布局,右侧固定,左侧自适应宽度这是右侧的内容这是左侧的内容,自适应宽度CSS两列布局,左侧固定,右侧自适应宽度中间内容,自适应宽度CSS三列布局,左右
本文实例讲述了Android编程实现自动调整TextView字体大小以适应文字长度的方法。分享给大家供大家参考,具体如下:packagecom.test.and
从二列固定宽度入手,开始尝试二列布局的情况下,左右栏宽度能够做到自适应,从一列自适应布局中我们知道,设定自适应主要通过宽度的百分比值设置,因此在二列宽度自适应的
vue简单实现瀑布流布局的一种方式(vue瀑布流组件),供大家参考,具体内容如下vue中的瀑布流布局组件需求:图片容器宽度固定,高度根据图片自适应,图片一行不能