Вот как я делаю нечто подобное в jQuery:
Я сделал это вчера вечером и проверил на IE7, IE8, FF3.6, Safari 5, Chrome 10 и др.
У меня есть баннер, который переполняется, когда люди уменьшают масштаб в некоторых браузерах. Поэтому я проверяю ширину моего .nav. Если он оборачивается, он будет короче полной ширины.
$(function() {
//launch doZoomCheck on load
doZoomCheck();
$(window).resize(function() {
// .resize ALSO fires when people change the zoom of their browser.
doZoomCheck();
});
function doZoomCheck() {
var width = $(".nav ul").width();
// if the width of the banner isn't near 976 is prolly overflowing
if ( width > 976) {
// change to narrow font so menu doesn't wrap funny
$(".nav ul li a, #footer .frankmed").css("font-family", "Arial Narrow");
}
// if width is back to normal change the font back
if ( width < 976) {
// remove special styles when zoomed back out
$(".nav ul li a").attr('style','');
}
}
});
Я использую jQuery 1.5, пролли работает на 1.3.2, но не проверял.
Обратите внимание: мой размер шрифта уже составляет 20 пикселей, поэтому Arial Narrow очень хорошо читается при таком размере. Я не мешаю пользователю изменять размер шрифта. Я не отменяю это. Я просто меняю шрифт. Не используйте этот скрипт для зла. Не будь глупым. Доступность важна.