[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выравнивание DIV по центру
max_ru
[style= font-size: 20px; ]Выравнивание слоя по центру[/style]
Влад Мержевич

Текстовая версия Добавить комментарий
Основное отличие веб-страницы от листа бумаги заключается в их размерах. Если лист имеет заданную фиксированную ширину и высоту, то по отношению к веб-сайту такого сказать нельзя. Веб-документ отображается в окне браузера и может изменять свои размеры в зависимости от операционной системы, типа монитора, установленного разрешения и т.д. Использование выравнивания позволяет проигнорировать указанную особенность и располагать элемент у края окна или по его центру.

Когда речь идет об использовании слоев, то для выравнивания в нашем распоряжении имеется несколько способов — с помощью отступов, через позиционирование, а также используя параметр align тега
.

Использование отступов
Если добавить отступ к слою слева с помощью параметра margin-left, то визуально слой сместится на указанное значение вправо. Зная ширину слоя, его можно сместить так, чтобы слой располагался по центру веб-страницы. Для чего от 100%, составляющих общую доступную ширину, надо отнять ширину слоя в процентах и полученное значение разделить пополам. Результат и будет значением параметра margin-left (пример 1).

Пример 1. Использование параметра margin-left









Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.





Как вариант, можно не указывать ширину, а регулировать ее с помощью отступа слева и справа (пример 2).

Пример 2. Использование отступов









Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.





В данном примере показано размещение слоя шириной 40% по центру. Хотя сама ширина никак напрямую не задается, она определяется значением атрибутов margin-left и margin-right. Эти параметры устанавливают отступ слева и справа, чтобы слой располагался по середине, их значения должны быть равны.

Применение параметра text-align
Следующий способ более универсален и уже не зависит от того, какие единицы измерения используются для установки ширины. Основная работа в этом случае выпадает параметру text-align. Выравнивание по центру производится с помощью атрибута center, который устанавливается для селектора BODY. Этот параметр воздействует не только на слои, но и на их содержимое, поэтому для стиля самого слоя необходимо также использовать text-align, но уже с другим параметром. Обычно используется значение left, которое задает выравнивание по левому краю и justify, определяющее выравнивание по ширине. По правому краю, как правило, текст не равняется из-за того, что читать его становится сложнее.

Ширина слоя определяется параметром width, его значение можно указывать в процентах или пикселах. Атрибуты margin-left и margin-right со значением auto используются для браузеров Opera, Netscape и Firefox, которые обязательно тр*цензура*ет их наличия (пример 3).

Пример 3. Применение параметра text-align









Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.





В данном примере ширина слоя устанавливается 400 пикселов и выравнивается по центру двумя способами. Первый предназначен для браузера Internet Explorer и состоит в использовании параметра text-align со значением center, который добавляется к селектору BODY. Второй способ ориентирован на браузер Firefox и Opera и заключается в применении отступа слева и справа со значением auto. Такой подход гарантирует универсальность работы кода в разных браузерах.

Параметр align тега

Еще один способ размещения по центру вообще не тр*цензура*ет использования никаких стилей и связан с параметром align тега
. Указывая значение center, заставляем содержимое слоя выравниваться по его центру. Поэтому необходимо создать два слоя, один из которых будет служить контейнером для другого, как показано в примере 4.

Пример 4. Параметр align тега DIV










Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.






Опять же, как и в случае использования параметра text-align, размещаться по центру будет и текст внутри слоя. Поэтому следует насильно задать ему необходимое выравнивание через стили. Ширину слоя-контейнера задавать не тр*цензура*ется, она будет вычисляться автоматически и занимать все доступное пространство веб-страницы.

Абсолютное позиционирование слоя
При абсолютном позиционировании координаты слоя вычисляются относительно левого верхнего угла окна браузера, а сам слой не зависит от остального содержимого веб-страницы. Поэтому слой, заданный с абсолютным позиционированием, может располагаться под основным текстом или, наоборот, поверх него. Такое положение определяется с помощью стилевого атрибута z-index и позволяет гибко управлять положением слоя по условной z-оси. Таким способом удобно выводить на веб-странице различные подсказки, всплывающие окна, рекламу или плавающие меню.

Вначале следует указать ширину и высоту слоя с помощью параметров width и height. Размеры можно задавать в пикселах, процентах или других единицах. Ширину, например, можно определить в процентах, а высоту в пикселах. Из-за этой особенности предлагаемый метод размещения по центру является наиболее универсальным.

Следующий шаг — задаем абсолютное позиционирование слоя через аргумент position: absolute. Положение слоя следует определить как 50% по горизонтали и вертикали с помощью свойств left и top. Эти значения остаются неизменными, независимо от используемых единиц измерения.

Так как координаты слоя определяются от его левого верхнего угла, для точного выравнивания следует добавить параметры margin-left и margin-top с отрицательными значениями. Их величина должна быть равна половине ширины слоя (для margin-left) и высоты (для margin-top).

Чтобы высота слоя не менялась из-за его контента, включен параметр overflow: auto, он добавляет полосы прокрутки, если в них возникнет нужда, высота при этом остается неизменной (пример 5).

Пример 5. Ширин слоя в пикселах









Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.





В случае использования процентной записи стиль меняется незначительно, надо так же поделить ширину и высоту пополам и добавить полученные значения в качестве аргументов к свойствам margin-left и margin-top (пример 6).

Пример 6. Ширина слоя в процентах









Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.





Ширина и высота слоя напрямую связана с отступами слева и сверху, если тр*цензура*ется установить значение одного из параметров в процентах, соответственно, поменяется и запись другого параметра. Как показано в данном примере, ширина слоя установлена в 40%, следовательно, и для свойства margin-left также надо применить проценты, в данном случае, –20%.

Указанная особенность позволяет применять любые единицы измерения, а не ограничиваться только одной формой записи, что делает код подходящим практически для всех случаев.

-----------------------------------------------------------------------------------------------------------
Таким образом выравнивание тэга div (а не его содержания) по центру осуществляется с помощью танцев с бубном вокруг шаблона, либо жесткого задания размеров слоев.

Вследствие этого предполагаю, что корректное форматирование шаблона на слоях удобнее всего производить при помощи php. 8)



Спустя 1 месяц, 19 дней, 8 часов, 7 минут, 47 секунд (23.09.2006 - 21:04) Sniper написал(а):
Долой тег
у меня сним стольк проблем возникало. Я лучше в крайнем случае буду пользоваться таблицами.

Спустя 1 день, 12 часов, 32 минуты, 12 секунд (25.09.2006 - 09:37) Leningrad00 написал(а):
Прелиздь.

Спустя 7 дней, 41 минута, 54 секунды (2.10.2006 - 10:18) max_ru написал(а):
Sniper, молодец. А таблицы ты будешь подбивать дубиной и подчищать палкой-копалкой...

Спустя 3 года, 8 месяцев, 16 дней, 13 часов, 34 минуты, 42 секунды (18.06.2010 - 23:53) Алекс написал(а):
Полностью кроссбраузерный метод выравнивания блоков по центру со свойством float. По моему единственно верный метод.

Спустя 2 дня, 8 часов, 56 минут, 30 секунд (21.06.2010 - 08:50) трамонтана написал(а):
Цитата
Основное отличие веб-страницы от листа бумаги заключается в их размерах

ерунда какаято..

Спустя 5 минут, 51 секунда (21.06.2010 - 08:55) трамонтана написал(а):
много текста, не осилил больше 2 абзацев... sad.gif
и перешёл сразу к морали:
Цитата
Таким образом выравнивание тэга div (а не его содержания) по центру осуществляется с помощью танцев с бубном вокруг шаблона, либо жесткого задания размеров слоев.

а весь текст как я понимаю это аргументы к этому выводу

margin:0 auto; - это тоже в категории "танец с бубном"?

Спустя 1 день, 4 часа, 18 минут, 43 секунды (22.06.2010 - 13:14) Alehandr написал(а):
Я вот пользуюсь решением от студии Лебедева:
http://www.artlebedev.ru/tools/technogrett...l/align-center/

Спустя 26 минут, 33 секунды (22.06.2010 - 13:41) qpayct написал(а):
а я делаю так:

<style>
BODY {
margin: 20px 0 0 0;
padding: 0;
text-align: center;
}
.oneCol DIV#page {
width:1000px;
margin:auto;
text-align:left;
}
</style>
<body
class="oneCol">
<div
id="page"></div>
</body>


_____________
Взгляд у меня добрый, но рубашка - смирительная.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.