说实话,我简直不敢相信,
这样一个简单而常用的效果,目前竟然无法用纯 CSS 效果实现。
包裹元素的容器宽度随着其中文字的变化,而逐渐改变宽度。
1、div 宽度随文字渐变。
实现原理:外层 div 套内层 span(或者 display:inline;),
外层设好 transition:width 0.5s ease-in-out; 和 overflow:hidden;。
内层文字变化后,将内层的宽度通过 js 赋值给外层。
$('.outer').css('width', $('.inner').width());
0
2、input 宽度随文字渐变。
实现原理:js 计算输入字符串长度乘以字体大小,并赋值宽度给 input。
$('input').css('width', $('input').val().length * 24 + 10);
0
(英文字符高宽比不定,精确值需要写到
span 中去测量宽度。)
【相关资料】
1、Appe Plan – Transition◃flickr
2、The Ultimate Guide to Readable Web Typography◃pearsonified
3、Calculate text width with Javascript◃stackoverflow

