我需要在选择列表中居中文本。没有仅使用 CSS 的跨浏览器和设备方法,所以我使用 JavaScript 设置文本缩进。
代码从选择列表中获取文本,将其添加到跨度(使用 css 使文本大小相同),并测量跨度的宽度。有了这个值,需要一些简单的数学来计算文本缩进需要是什么。
$(window).load(function() {
function textIndentFunc () {
textString = $('#from-1 :selected').text();
$('#hidden').text(textString);
textWidth = $('#hidden').width();
inputWidth = $('#from-1 select').width();
indentMy = (inputWidth / 2) - (textWidth / 2);
$('#from-1').css('text-indent',indentMy);
}
$('#from-1 select').change(function() {
textIndentFunc();
});
textIndentFunc();
});
大多数情况下,这段代码运行良好,但有时似乎没有做任何事情,在这种情况下,刷新页面通常会修复它。为什么这段代码如此喜怒无常?是否与必须操纵dom有关?
谢谢