Возможно, одним из решений было бы использование javascript для вычисления ширины заданного текста в некотором стандартном размере шрифта, а затем изменение размера до получения разумной ширины. В Javascript вы можете рассчитать ширину текста следующим образом:
var title = document.getElementById("title");
var width = title.offsetWidth;
Первоначально текст помещается в промежуток без применения стилей, кроме размера шрифта.
<span id="title">The Title</span>
Затем вы можете проверить, больше ли ширина текста, чем 800px, и уменьшить размер шрифта, пока ширина не станет меньше или равна. Важно, чтобы у заголовка не было других примененных стилей, иначе результаты будут неправильными.
Вы также можете проверить, не слишком ли мала ширина, может быть меньше 200 пикселей, и соответственно увеличить размер шрифта.
Как только вы убедились, что размер текста соответствует размеру, переместите текст в h1 и установите размер шрифта.
Этот вопрос описывает вычисление ширины текста.
Например, я быстро написал это, используя jQuery. Предположим, у вас есть такой HTML-код:
<span id="mytitle" style="font-size:14pt;">
A very long title that may be more than 800px in width. And even longer.
</span>
Я использовал span, потому что он изменяется по ширине текста, а не по контейнеру. И код JQuery:
$(document).ready(function(){
var w = $("#mytitle").width();
while(w > 800){
var currentFontSize = $('#mytitle').css('font-size');
var currentFontSizeNum = parseFloat(currentFontSize, 10);
var newFontSize = currentFontSizeNum*0.95;
$('#mytitle').css('font-size', newFontSize);
w = $("#mytitle").width();
//alert("Width:" + w);
}
});
То есть многократно уменьшать размер шрифта на 5%, пока общая ширина не станет меньше или равна 800px.