css - 设置输入宽度以适合文本大小

标签 css

我有并输入了图标,看起来像这样: screenshot

<div class="input-with-icon">
  <input type="text" value="abcdefeghijklmnopqrtvuvwxyz" class="form-control">
  <span class="icon icon-calendar"></span>
</div>

live demo

是否可以调整 CSS,使输入始终适合文本宽度?例如它会随着我的输入而拉伸(stretch)。

目前,.input-with-icon 具有固定宽度,但如果我将其设置为自动,输入将不会拉伸(stretch)。

最佳答案

<input id="txt" type="text" value="Hello World!" />
input {
min-width:50px!important;
max-width:99.99%!important;
transition: width 0.25s;
text-align:center;
}
function resizable (el, factor) {
var int = Number(factor) || 7.7;
function resize() {el.style.width = ((el.value.length+1) * int) + 'px'}
var e = 'keyup,keypress,focus,blur,change'.split(',');
for (var i in e) el.addEventListener(e[i],resize,false);
resize();
}
resizable(document.getElementById('txt'),7);

关于css - 设置输入宽度以适合文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40524698/

相关文章:

html - Bootstrap 在移动 View 中重新排序图像和文本

html - 悬停时无法显示水平菜单的子菜单

jquery - 砌体图像相互重叠

javascript - 在初始折叠 TreeView css 表

CSS 变换以在椭圆路径中旋转元素

html - 在 bootstrap 中删除页眉的上边距

css - 为单个输入 ID 定义 CSS 样式,而不是 input[type=checkbox]

css - 为什么我们需要显示 block 来居中按钮

html - Div 弹出标题

css - 960 网格 : the proper way to make grid lists