Javascript: размер колонок текста в зависимости от разрешения экрана
| Проблема представления текста на больших мониторах была поднята в статье про 2 колонки текста с помощью css. В этом материале поговорим о том, как сделать разбиение текста на 2 колонки автоматически в зависимости от разрешения экрана пользователя. Вводная. Имеется 3 экрана. Первый — 1280х1024, второй — 1680х1050 и третий — 1920х1200. На странице сайта есть текст, который у первого пользователя должен представляться как есть, у второго — разбиваться на 2 колонки по 500 пикселей, а у третьего — тоже на 2 колонки, но по 600 пикселей. Для начала сделаем CSS-класс columns:
Текст, который должен быть размещен на странице делим на 2 равных части, каждую из которых оборачиваем в div с классом columns:
Теперь напишем нехитрую функцию JavaScript, точнее две функции:
Вызов CorrectColumns уместно производить в двух случаях — после загрузки страницы и при изменении размера браузера пользователем, для корректировки параметров. Функция ChangeCssProperty меняет нужный параметр нужного CSS-класса. А вот функция CorrectColumns непосредственно определяет, нужны ли столбцы, и если да, то какого размера. О ней немного подробнее. Приведенный метод разбивает текст на 2 колонки, только если браузер развернут у пользователя на всю (или почти на всю) страницу — проверяется это приведенными в примере числами. Важно учитывать, что разные браузеры интерпритируют, например, разрешение 1650 и как 1650, и как 1649, и даже как 1639. Выделяется, как обычно Internet Explorer. Любопытный читатель может проверить это самостоятельно. При изменении размера окна браузера и выпадания из стандартных диапазонов, приведенный скрипт будет представлять текст как на маленьких разрешениях, то есть без деления на колонки. При желании и знании параметров страницы (отступов, меню, шапок и прочего) его легко модифицировать для деления на одну, две и далее колонки в зависимости от конкретного размера окна. |
