Table відступи між осередками. Застарілий спосіб задати зовнішні відступи осередкам

Самі собою таблиці виглядають досить «бідно», до того ж браузери по-своєму відображають деякі характеристики таблиць, зокрема, рамки. Водночас ці недоліки легко виправити скориставшись міццю стилів. При цьому дуже розширюються засоби оформлення таблиць, що дозволяє успішно вписати таблиці в дизайн сайту і наочно представити табличні дані.

Колір фону осередків

Колір фону одночасно всіх осередків таблиці встановлюється через властивість background, яке застосовується до селектора TABLE. При цьому слід пам'ятати про правила використання стилів, зокрема, успадкування властивостей елементів. Хоча якість background не успадковується, для осередків значенням тла за замовчуванням виступає transparent , тобто. прозорість, тому ефект заливки фону виходить і в осередків. Якщо одночасно з TABLE встановити колір у селектора TD або TH , то цей колір буде встановлений як тло комірки (приклад 2.3).

Приклад 2.3. Колір фону

Таблиці

Заголовок 1Заголовок 2
Осередок 3Осередок 4

У цьому прикладі отримаємо синій колір фону у осередків (тег ) і червоний біля заголовка (тег ). Це з тим, що стиль для селектора TH не визначено, тому «просвічується» фон батька, у разі, селектора TABLE . А колір для селектора TD вказаний явно, ось осередки і заливаються синім кольором.

Результат цього прикладу показаний на рис. 2.4.

Рис. 2.4. Зміна кольору фону

Поля всередині осередків

Полем називається відстань між краєм вмісту осередку та її кордоном. Зазвичай для цієї мети застосовується атрибут cellpadding тега

. Він визначає значення поля у пікселах з усіх боків комірки. Дозволяється використовувати стильову властивість padding, додаючи його до селектора TD, як показано в прикладі 2.4.

Приклад 2.4. Поля у таблицях

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Таблиці

Заголовок 1Заголовок 2
Осередок 3Осередок 4

У цьому прикладі за допомогою групування селекторів поля встановлені одночасно для селектора TD та TH. Результат прикладу показано на рис. 2.5.

Рис. 2.5. Поля в осередках

Якщо застосовується стильова властивість padding для осередків таблиці, то дія атрибуту cellpadding тега

ігнорується.

Відстань між осередками

Для зміни відстані між осередками застосовується атрибут cellspacing тега

. Вплив цього атрибута добре помітний при використанні меж навколо осередків або заливки осередків кольором, який виділяється на тлі сторінки. Як заміна cellspacing виступає стильова властивість border-spacing, вона встановлює відстань між межами осередків. Одне значення встановлює одночасно відстань по вертикалі та горизонталі між межами осередків. Якщо значень цього властивості два, то перше визначає горизонтальне відстань (тобто. ліворуч і праворуч від осередку), а друге - вертикальне (згори і знизу).

Властивість border-spacing діє тільки в тому випадку, якщо для селектора TABLE не встановлено властивість border-collapse зі значенням collapse (приклад 2.5).

приклад 2.5. Відстань між кордонами осередків

XHTML 1.0 CSS 2.1 IE 7 IE 8+ Cr Op Sa Fx

Заміна cellspacing

Леонардо58
Рафаель411
Мікеланджело249
Донателло213

Результат цього прикладу показаний на рис. 2.6.

Рис. 2.6. Вигляд таблиці під час використання border-spacing

Браузер Internet Explorer до сьомої версії включно не підтримує властивість border-spacing, тому в цьому браузері для таблиць буде застосовуватися значення cellspacing, задане за замовчуванням (зазвичай воно дорівнює 2px).

При додаванні до селектора TABLE властивості border-collapse зі значенням collapse атрибут cellspacing ігнорується, а значення border-spacing обнуляється.

Межі та рамки

За замовчуванням межі в таблиці спочатку немає, а її додавання відбувається за допомогою атрибуту.

. Браузери по-різному відображають такий кордон, тому краще не вказувати цей атрибут взагалі, а малювання кордонів покласти на стилі. Розглянемо два методи, що безпосередньо пов'язані зі стилями.

Використання атрибуту cellspacing

Відомо, що атрибут cellspacing тега

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

Зауважимо, що це не зовсім зручний спосіб створення кордонів, оскільки він має обмежену сферу застосування. Так можна отримати лише однобарвну сітку, а не вертикальні або горизонтальні лінії у потрібних місцях.

Використання властивості border

Стильова властивість border одночасно встановлює колір межі, її стиль та товщину навколо елемента. Коли потрібно створити окремі лінії на різних сторонах, краще використовувати похідні - border-left, border-right, border-top і border-bottom, ці властивості відповідно визначають межу ліворуч, праворуч, зверху та знизу.

Застосовуючи властивість border до селектора TABLE ми додаємо рамку навколо таблиці в цілому, а до селектора TD або TH - рамку навколо осередків (приклад 2.6).

Приклад 2.6. Додавання подвійної рамки

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Таблиці

Заголовок 1Заголовок 2
Осередок 3Осередок 4

У цьому прикладі використовується подвійна рамка чорного кольору навколо самої таблиці та суцільна рамка білого кольору навколо кожного осередку. Результат прикладу показано на рис. 2.7.

Рис. 2.7. Кордон навколо таблиці та осередків

Зверніть увагу, що в місці стикування осередків утворюються подвійні лінії. Вони виходять знову ж таки за рахунок дії атрибуту cellspacing тега

. Хоча код прикладу цей атрибут ніде не фігурує, браузер використовує його за замовчуванням. Якщо поставити
то отримаємо не подвійні, а одинарні лінії, але подвоєної товщини. Для зміни зазначеної особливості застосовується стильова властивість border-collapse зі значенням collapse, яке додається до селектора TABLE (Приклад 2.7).

Приклад 2.7. Створення одинарної рамки

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Таблиці

Заголовок 1Заголовок 2
Осередок 3Осередок 4

У цьому прикладі створюється суцільна лінія зеленого кольору між осередками та чорна навколо таблиці. Усі межі всередині таблиці мають однакову товщину. Результат прикладу показано на рис. 2.8.

Рис. 2.8. Кордон навколо таблиці

Вирівнювання вмісту осередків

За замовчуванням текст у осередку таблиці вирівнюється ліворуч. Винятком із цього правила служить тег , він визначає заголовок, у якому вирівнювання відбувається центром. Щоб змінити спосіб вирівнювання, застосовується стильова властивість text-align (приклад 2.8).

Приклад 2.8. Вирівнювання вмісту осередків по горизонталі

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Таблиці

Заголовок 1Осередок 1Осередок 2
Заголовок 2Осередок 3Осередок 4

В даному прикладі вміст тега вирівнюється по лівому краю, а вміст тега - по центру. Результат прикладу наведено нижче (рис. 2.9).

Рис. 2.9. Вирівнювання тексту в осередках

Вирівнювання по вертикалі в осередку завжди відбувається по її центру, якщо це не зазначено особливо. Не завжди зручно, особливо для таблиць, які мають вміст осередків відрізняється за висотою. У такому разі вирівнювання встановлюють по верхньому краю осередку за допомогою властивості vertical-align, як показано в прикладі 2.9.

Приклад 2.9. Вирівнювання вмісту осередків по вертикалі

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Таблиці

Заголовок 1Заголовок 2
Осередок 1Осередок 2

У цьому прикладі встановлюється висота заголовка як 40 пікселів та вирівнювання тексту відбувається по нижньому краю. Результат прикладу показано на рис. 2.10.

Рис. 2.10. Вирівнювання тексту в осередках

Порожні осередки

Браузери інакше відображають осередок, усередині якого нічого немає. «Нічого» в даному випадку означає, що всередину осередку не додали ні малюнок, ні текст, причому прогалину не приймається. Звичайно, вид осередків відрізняється тільки в тому випадку, якщо навколо них встановлена ​​межа. При використанні невидимої рамки вид осередків, незалежно від того, є в них що-небудь, збігається.

Старі браузери не відображали колір фону порожніх осередків вигляду , тому в тому випадку, коли потрібно залишити комірку без вмісту, але відобразити колір фону, всередину комірки додавали пробіл (). Пробіл не завжди підходить, особливо коли потрібно встановити висоту осередку 1-2 пікселі, через що широкого поширення набув однопіксельний прозорий малюнок. Справді, такий малюнок можна масштабувати на власний розсуд, але він на веб-сторінці ніяк не відображається.

На щастя, епоха однопіксельних малюнків і всіляких розпірок на їх основі пройшла. Браузери досить коректно працюють з таблицями та без присутності вмісту осередків.

Для керування видом порожніх осередків використовується властивість empty-cells, при значенні hide межа і фон у порожніх осередках не відображається. Якщо всі комірки в рядку порожні, рядок ховається цілком. Осередок вважається порожнім у таких випадках:

  • немає взагалі жодних символів;
  • у комірці міститься лише переклад рядка, символ табуляції або пробіл;
  • значення visibility встановлено як hidden.

Додавання нерозривного пропуску сприймається як видиме зміст, тобто. осередок вже буде не порожнім (приклад 2.10).

Приклад 2.10. Порожні осередки

XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

Використання empty-cells

Леонардо58
Рафаель 11
Мікеланджело24
Донателло 13

Вигляд таблиці в браузері Safari показано на рис. 2.11а. Та ж таблиця у браузері IE7 продемонстрована на рис. 2.11б.

а. У браузері Safari, Firefox, Opera, IE8, IE9

б. У браузері IE7

Рис. 2.11. Вигляд таблиці з порожніми осередками

CSS дозволяє встановити не тільки стиль межі таблиці, а й стиль меж окремих осередків. Так як у кожного осередку свої межі, то між сусідніми осередками кордон виходить здвоєний. Але є можливість об'єднати межі сусідніх осередків в одну. І тому властивість border-collapse . Воно набуває значення:

border-collapse: separate - у кожного осередку своя межа (за замовчуванням)

border-collapse: collapse – спільний кордон

border-collapse: inherit – значення приймається від батьківського елемента

Наприклад створимо таблицю і задаємо рамку осередків всіх таблиць, що будуть на сторінці. Спочатку не будемо нічого міняти, щоб подивитися, як таблиця виглядатиме:

Стиль:

1
2
3
4
5
6

Сторінка









12
34


Результат цього прикладу показаний ні рис. 1.

Рис. 1. Використання параметра border-spacing

Примітка

Якщо до тегу

доданий параметр cellspacing, то при використанні стильового атрибуту border-spacing він не береться до уваги і значення cellspacing ігнорується. Винятком цього правила є браузер Internet Explorer, який взагалі розуміє властивість border-spacing .

Таблиці

  • border-collapse встановлює, як відображати межі навколо осередків таблиці. Цей параметр відіграє роль, коли для осередків встановлена ​​рамка, тоді в місці стику осередків вийде лінія подвійної товщини. Додавання значення collapse змушує браузер аналізувати подібні місця у таблиці та прибирати у ній подвійні лінії.
  • table-layout визначає, як браузер повинен обчислювати висоту та ширину осередків таблиці, ґрунтуючись на її вмісті.
  • border-spacing визначає відстань між межами осередків у таблиці. Атрибут border-spacing не працює, якщо для таблиці встановлено параметр border-collapse зі значенням collapse.
  • Ми вже з'ясували з вами, що HTML-таблиці мають рамкихоча за замовчуванням їх браузери і не показують. Але це ще не все, у кожного осередку таблиці теж є рамка, яка називається межа осередку. Але це ще не все, використовуючи спеціальні атрибути тега

    можна змінювати відстані між осередками та від осередків до рамки таблиці, а також внутрішні відступи від меж осередків до їхнього вмісту.

    Рамка HTML-таблиці, межі осередків, відстані між ними та внутрішні відступи.

    Отже, для створення рамки HTML-таблиці та меж її осередківвикористовується лише один атрибут тега

    - Border . Значенням атрибута є цілі невід'ємні числа (нуль за замовчуванням), які означають розмір пікселів. Але, увага, розмір змінюється лише біля рамки таблиці, біля меж осередків завжди незмінний.

    ...

    Для зміни відстані між осередками(їх межами) та від осередків до рамкитаблиці у тезі

    застосовується атрибут cellspacing. Його значеннями також можуть бути лише числа, що відміряють відстані в пікселях.

    ...

    Щоб встановити внутрішні відступи від кордонів осередків до їхнього вмістунеобхідно у тезі

    використовувати атрибут cellpadding. І його значення це числа, що означають піксельні розміри.

    ...

    Зверніть увагу, що браузери за замовчуванням встановлюють невеликі (в два пікселі) значення cellspacing і cellpadding , тому щоб прибрати відстані зовсім - встановіть атрибути значення нуль (0).

    Приклад меж, рамок та відступів HTML-таблиць

    Кордони, рамки та відступи таблиць

    Осередок 1.1Осередок 1.2Осередок 1.3
    Осередок 2.1Осередок 2.2Осередок 2.3
    Осередок 3.1Осередок 3.2Осередок 3.3

    Таблиця лише з встановленими рамкою та межами осередків:

    Осередок 1.1Осередок 1.2Осередок 1.3
    Осередок 2.1Осередок 2.2Осередок 2.3
    Осередок 3.1Осередок 3.2Осередок 3.3

    Результат у браузері

    Таблиця зі зміненими відступами та відстанями:

    Природно не обов'язково малювати у таблиці рамку та межі осередків, щоб змінювати внутрішні відступи та відстані між осередками.

    Відповідно до синтаксису HTML, браузери додають значення cellspacing і cellpadding до розмірів таблиці та її осередків. Наприклад, якщо ви встановите ширину комірки в 100 пікселів і cellpadding = "10" - браузери додадуть до ширини 20 пікселів (по 10 зліва і справа) і вона дорівнюватиме 120 пікселів. Загалом, у справі розберетеся.

    Відступ від теми або як усунути відступи по краях сторінки

    Спочатку всі браузери встановлюють невеликі відступи по краях HTML-сторінки, які часто не потрібні, тому зараз ви навчитеся їх прибирати. Взагалі, цю інформацію слід було б помістити на початок підручника, але там вона навряд чи знадобилася б.

    Свого часу біля тега існувало чотири атрибути, які встановлювали розмір цих відступів для кожної сторони сторінки: topmargin (зверху), rightmargin (праворуч), bottommargin (знизу) та leftmargin (ліворуч). Зараз ці атрибути застаріли, тому застосовуватимемо стилі (CSS). Отже, змінити відстані відступів по краях сторінки можна декількома способами, я покажу вам два, а про третій дізнаєтесь, якщо вирішите вивчати CSS.

    Спосіб перший. B тезі вказати атрибут style з такими значеннями:

    style="margin:0" >... - прибирає відступи одразу з усіх боків HTML-сторінки.

    style= "margin:зверху праворуч знизу ліворуч">... - регулює розмір відступів для кожної сторони за годинниковою стрілкою. Як правило, використовуються розміри в пікселях, наприклад: style= "margin:5px 3px 4px 5px" >...

    Другий і зручніший спосіб. У тезі

    Домашнє завдання.

    У цьому уроці я теж не буду докладно описувати - тільки загальні моменти. Для повноти картини перегляньте результат прикладу.

    1. Створіть три таблиці, кожна має складатися з одного рядка і трьох стовпців (колонок).
    2. У першій таблиці розмістіть Header або «шапку» сторінки (не плутати з «шапкою» HTML-документа), у другій – ліве та праве меню, а також основний вміст (контент), у третій – Footer або «підвал» сторінки.
    3. Нехай ширина першого та останнього стовпця кожної таблиці буде фіксована.
    4. Важливо. Використовуйте тег тільки для створення чотирьох кнопок горизонтального меню у «шапці» сторінки. В інших випадках нехай зображення йдуть фоном, а у других осередках таблиць взагалі використовуються тільки кольори, причому в першій та останній таблиці це #99FF99.
    5. Нехай текст контенту сторінки буде вирівняний по обидва боки осередку таблиці, а заголовок розташований по центру.
    6. Що стосується відстаней між осередками таблиць, а також відступів осередків, то думайте самі, де їх треба зовсім прибрати, а де збільшити.

    Отже, ми вивчили найпростіші дії, які можна здійснювати з межами таблиць. І тепер таблиця виглядає значно естетичнішою. Однак, наповнення осередків прямо-таки упирається в межі. Це легко можна виправити, достатньо зробити відступи в осередках у таблиці HTML. І тоді текст усередині рамки, у осередку, буде більш читабельним.

    Для того, щоб зробити відступи в осередку, слід використовувати атрибут. cellpaddingдля тега

    . Однак, є й інший, кращий варіант: CSS.

    У такому разі відступи задаються за допомогою властивості padding. З його допомогою не важко зробити відступ там, де треба, тобто - зверху, справа, знизу або зліва, використовуючи, відповідно, одну з даних властивостей: padding-top, padding-right, padding-bottomі padding-left.

    Можна задати, на скільки саме пікселів має здійснюватися відступ. Наведемо приклад, у якому нижній відступ становитиме 20 пікселів, а всі інші будуть по 10 . Такий CSS-код виглядатиме ось так:

    Td ( padding: 10px; padding-bottom: 20px; )

    А повний код стилів на цьому етапі:

    Table ( border: solid 1px blue; border-collapse: collapse; ) td ( border: solid 1px blue; padding: 10px; padding-bottom: 20px; )

    Результат у браузері:

    Відступи між осередками

    Як правило, завдання, пов'язані зі створенням таблиць, можна вирішити, використовуючи для цього теги, атрибути та властивості, які дозволяють створювати рамки, відступи в осередках, а також задати колірний фон самих осередків.

    Відступи в таблицях бувають не лише всередині осередків. Вони можуть також бути присутніми і між самими осередками.

    Існує дві можливості зробити відступи між осередками:

    1. з використанням атрибуту cellspacingдля тега
    .
  • з використанням CSS-Властивості border-spacing.
  • Треба наголосити, що border-spacingпрописується для таблиці загалом, тоді як властивість paddingпрописується безпосередньо для осередків.

    Давайте глянемо на приклад:

    Table ( border: solid 1px blue; border-collapse: separate; border-spacing: 5px; ) td ( border: solid 1px blue; padding: 10px; padding-bottom: 20px; )

    І на результат, що вийшов:

    Відразу обмовимо, що не треба намагатися зробити такі відступи за допомогою border-collapse: collapse. Адже при використанні цієї опції осередки «липнуть» один до одного.

    А щоб вони були окремо один від одного, слід використовувати border-collapse: separate. Важливо розуміти, що це значення є значенням за замовчуванням. І застосовується воно лише для того, щоб наочно показати, як вирішується це завдання. Якщо ми видалимо цей рядок, то результат у вигляді окремо розташованих один від одного осередків буде збережено.