Вирівнювання шару по центру
Основне відмінність веб-сторінки від аркуша паперу полягає у їх розмірах. Якщо аркуш має фіксовану ширину і висоту, то щодо веб-сайту такого сказати не можна. Веб-документ відображається у вікні браузера і може змінювати свої розміри залежно від налаштувань операційної системи, типу монітора, встановленого роздільної здатності і т. д. Використання вирівнювання дозволяє проігнорувати вказану особливість і розміщувати елемент у краю вікна або по його центру.
Коли мова йде про використання шарів, то для вирівнювання у нашому розпорядженні є кілька способів - за допомогою відступів, через позиціонування, а також використовуючи атрибут align тега <div>.
Використання відступів
Якщо додати відступ до шару зліва за допомогою властивості margin-left, то візуально шар зсунеться на вказане значення праворуч. Знаючи ширину шару, його можна зсунути так, щоб шар розташовувався по центру веб-сторінки. Для цього від 100%, що складають загальну доступну ширину, потрібно відняти ширину шару у відсотках і отримане значення поділити пополам. Результат і буде значенням властивості margin-left (приклад 1).
Приклад 1. Використання margin-left
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Вирівнювання</title>
<style type="text/css">
#centerLayer {
margin-left: 30%; /* Відступ зліва */
width: 40%; /* Ширина шару */
background: #fc0; /* Колір фону */
padding: 10px; /* Поля навколо тексту */
}
</style>
</head>
<body>
<div id="centerLayer">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy
nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.
</div>
</body>
</html>Як варіант, можна не вказувати ширину, а регулювати її за допомогою відступу зліва і справа (приклад 2).
Приклад 2. Використання відступів
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Вирівнювання</title>
<style type="text/css">
#centerLayer {
margin-left: 30%; /* Відступ зліва */
margin-right: 30%; /* Відступ справа */
background: #fc0; /* Колір фону */
padding: 10px; /* Поля навколо тексту */
}
</style>
</head>
<body>
<div id="centerLayer">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy
nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.
</div>
</body>
</html>У даному прикладі показано розташування шару шириною 40% по центру. Хоча сама ширина ніяк напряму не задається, вона визначається значенням властивостей margin-left і margin-right. Вони встановлюють відступ зліва і справа, щоб шар розміщувався по середині, їх значення повинні бути рівними.
Наступний спосіб більш універсальний і вже не залежить від того, які одиниці вимірювання використовуються для встановлення ширини. Для цього потрібно встановити відступ зліва і справа для шару рівним auto за допомогою стилевих властивостей margin-left і margin-right або універсальної властивості margin (приклад 3).
Приклад 3. Застосування значення auto
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Вирівнювання</title>
<style type="text/css">
#centerLayer {
width: 400px; /* Ширина шару в пікселях */
margin: 0 auto; /* Відступ зліва і справа */
background: #fc0; /* Колір фону */
padding: 10px; /* Поля навколо тексту */
text-align: left; /* Вирівнювання вмісту шару по лівому краю */
}
</style>
</head>
<body>
<div id="centerLayer">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy
nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.
</div>
</body>
</html>У цьому прикладі ширина шару встановлюється 400 пікселів і вирівнюється по центру за допомогою значення 0 auto властивості margin. Перший аргумент встановлює нульовий відступ одночасно зверху і знизу від шару, а другий аргумент вирівнює шар по центру горизонталі вікна браузера.
Атрибут align тега <div>
Ще один спосіб розміщення по центру взагалі не потребує використання жодних стилів і пов'язаний з атрибутом align тега <div>. Вказуючи значення center, змушуємо вміст шару вирівнюватися по його центру. Тому потрібно створити два шари, один із яких буде служити контейнером для іншого, як показано в прикладі 4.
Приклад 4. Атрибут align
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Вирівнювання</title>
<style type="text/css">
#centerLayer {
width: 400px; /* Ширина шару в пікселях */
background: #fc0; /* Колір фону */
padding: 10px; /* Поля навколо тексту */
text-align: left; /* Вирівнювання по лівому краю */
}
</style>
</head>
<body>
<div align="center">
<div id="centerLayer">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy
nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.
</div>
</div>
</body>
</html>Знову ж таки, як і в разі використання властивості text-align, вирівнюватися по центру буде і текст всередині шару. Тому слід насильно задати йому необхідне вирівнювання через стилі. Ширину шару-контейнера задавати не потрібно, вона буде обчислюватися автоматично і займати всі доступні простори веб-сторінки.
Абсолютне позиціонування шару
При абсолютному позиціонуванні координати шару обчислюються відносно лівого верхнього кута вікна батьківського елемента або браузера, якщо батька немає. Шар, заданий з абсолютним позиціонуванням, може розташовуватися під основним текстом або, навпаки, поверх нього. Положення визначається за допомогою стилевої властивості z-index і дозволяє гнучко керувати положенням шару за умовною z-віссю. Таким способом зручно виводити на веб-сторінці різні підказки, виринаючі вікна, рекламу або плаваючі меню.
Спочатку слід вказати ширину і висоту шару за допомогою width і height. Розміри можна задавати в пікселях, відсотках або інших одиницях. Ширину, наприклад, можна визначити відсотках, а висоту в пікселях. Через цю особливість запропонований метод розміщення по центру є найбільш універсальним.
Наступний крок - встановлюємо абсолютне позиціонування шару через position: absolute. Положення шару слід визначити як 50% по горизонталі і вертикалі за допомогою властивостей left і top. Ці значення залишаються незмінними, незалежно від використаних одиниць вимірювання.
Оскільки координати шару визначаються від його лівого верхнього кута, для точного вирівнювання слід додати властивості margin-left і margin-top з від'ємними значеннями. Їх величина повинна бути рівною половині ширини шару (для margin-left) і висоти (для margin-top).
Щоб висота шару не змінювалась через його контент, включений overflow: auto, він додає смуги прокрутки, якщо вони будуть потрібні, висота при цьому залишається незмінною (приклад 5).
Приклад 5. Ширина шару в пікселях
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//