Css чередование цветов в таблице. Выбор элементов определенного типа по их индексу

Стал популярен, web-дизайнеры в основном использовали метод табличной вёрстки и получали очень хороший результат.


Теги, используемые для построения таблицы в html

table - обязательный тег, открывающий и закрывающий таблицу
caption - необязательный тег, обозначающий заголовок таблицы
th - необязательный тег, в открывающий и закрывающий теги которого вписывается название столбца. Как правило, выделяется жирным
tr - обязательный тег, с которого открывается и закрывается строка
td - обязательный тег, обозначающий открытие и закрытие ячейки в строке

Пример кода простой таблицы



Таблица html


Название таблицы

Стобец 1


Стобец 2




Текст в первой ячейке

Текст во второй ячейке



В браузере отобразится

Назначение таблиц в html Урок по таблицам очень важен! Благодаря таблицам Вы можете расположить не только текст, но и изображения, ссылки и много другое. В таблице можно задавать фон (или его цвет), отступ , ширину , границу и другие параметры , что придаст ей красивый внешний вид. Таблица - Ваш первый шаг к понимаю web-дизайна ! Ранее многие сайты были целиком свёрстаны как таблицы, то есть всё, что видел пользователь (боковое меню, верхнее меню, содержание) - было содержанием ячеек большой таблицы.
На этой ноте перейдём непосредственно к атрибутам, которые делают таблицу красивой...Свойства и параметры html таблиц: отступ, ширина, цвет фона, граница (рамка) У тега table есть следующие атрибуты:

width - ширина таблицы. может быть в пикселях или % от ширины экрана.
bgcolor - цвет фона ячеек таблицы
background - заливает фон таблицы рисунком
border - рамка и границы в таблице. Толщина указывается в пикселях
cellpadding - отступ в пикселях между содержимым ячейки и её внутренней границей
Как и ранее, значение атрибута прописываем в кавычках.

Рассмотрим применения данных атрибутов на примере. Для этого создадим таблицу (но уже без крайне редко применяемых тегов caption и th ) и зададим параметр атрибуту border (граница) , width (ширина таблицы, строки или ячейки) и bgcolor (цвет ячейки)



Таблица html







В результате в браузере будет выведена таблица следующего вида

frame - атрибут, обозначающий рамку вокруг таблицы. Есть следующие значения:

Void - рамки нет,
above - только верхняя рамка,
below - только нижняя рамка,
hsides - только верхняя и нижняя рамки,
vsides - только левая и правая рамки,
lhs - только левая рамка,
rhs - только правая рамка,
box - все четыре части рамки.

rules - атрибут, обозначающий границы внутри таблицы, между ячейками. Есть следующие значения:

None - между ячейками нет границ,
groups - границы только между группами строк и группами столбцов (будут рассмотрены чуть позже),
rows - границы только между строками,
cols - границы только между стобцами,
all - отображать все границы.

Рассмотрим пример кода



Таблица html


Стобец 1

Стобец 2









Результат

Теперь попробуем создать красивую таблицу. Для этого давайте начнём использовать выравнивание в таблице . Для этого есть следующие уже знакомые параметры:

align - выравнивание таблицы. Её можно расположить слева (left), справа (right), по центру (center)
cellspacing - расстояние между ячейками таблицы. Указывается в пикселях (по умолчанию 0 пикселей)
cellpadding - отступ в пикселях между содержимым ячейки и её внутренней границей (по умолчанию 0 пикселей)
Рассмотрим пример



Таблица html


Стобец 1

Стобец 2

Текст в первой ячейке первого столбца

Текст во второй ячейке второго столбца







В браузере отобразится выравненная по центру таблица следующего вида

Строки tr и ячейки td в таблицах HTML Снова напомню о том, что таблицы формируются построчно (tr). В строках (tr) уже находятся ячейки (td). Если задавать параметр для строки (tr), то он будет действителен для всех ячеек (td) в этой строке, если для конкретной ячейки, то только для неё. В примерах выше я указывал цвет для строки, этот параметр распространялся соответственно для всех ячеек.





Для тегов tr и td есть следующие

align - выравнивание текста внутри ячейки. По левому краю (left), по правому краю (right), по центру (center)
valign - выравнивание текста внутри ячейки по вертикали. Вверх (top), вниз (bottom), по центру (middle)
bgcolor - задает цвет строки
width - ширина столбца (все ячейки ниже примут данный параметр) указывается в пикселях или в процентах, где 100% ширина всей таблицы
height - высота ячейки (все ячейки в строке примут данный параметр)

Рассмотрим код, где содержимое ячеек (td), выравнено по разным краям: в первой по левому, во второй по правому:



Таблица html


Стобец 1

Стобец 2

Текст в первой ячейке первого столбца

Текст во второй ячейке второго столбца

Стобец 1

Стобец 2







Результат

С помощью таблиц можно сверстать очень даже неплохую страницу. Не забывайте, что в ячейки можно вставлять не только текст, но и изображения, ссылки и прочее!)

Спасибо за внимание! Надеюсь материал был полезен!

Не кажется ли вам, что черно-белая таблица выглядит скучновато? Вот и мы так думаем! Поэтому в этом уроке мы поговорим о том, как изменить цвет таблицы в HTML. Существует три возможности добавления цвета, для каждой из которых присутствует свое свойство.

  • Указание цвета фона ячеек. Осуществляется с помощью свойства background-color .
  • Указание цвета текста в ячейках. Осуществляется с помощью свойства color .
  • Указание цвета рамок ячеек. Осуществляется с помощью свойства border-color .
  • Ранее, чтобы изменить цвет, применялась более сжатая форма описания рамки. Выглядела она вот так:

    Border: 1px solid lightgray

    И за цвет здесь отвечала последняя часть – lightrgay .

    Существуют различные способы, позволяющие задать значение цветов в CSS . Мы же покажем вам, как происходит описание цвета с использованием атрибутов.

    Как изменить цвет ячейки

    Давайте посмотрим, как выглядит код в CSS , в котором задан цвет для ячейки.

    Td { background-color: цвет-фона; }

    Разумеется, изменять цвета можно и у table , и у td , и у th . Давайте попробуем придать нашей таблице умножения более солидный вид.

    Добавим стили для ячеек-заголовков с тегом th , а также для ячеек по диагонали, в которых расположены квадраты чисел:

    Таблица умножения table { border: solid 1px blue; border-collapse: collapse; } td, th { border: solid 1px blue; padding: 10px; } th { background-color: #eeeeee; }


    Стобец 1

    Стобец 2

    Текст в первой ячейке первого столбца

    Текст во второй ячейке второго столбца
    Таблица умножения * 2 3 2 3
    4 6
    6 9

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

    Как изменить цвет рамки в таблице

    Как вы уже заметили в примере выше, в таблице мы изменили цвет рамки. Для этого мы использовали свойство border. В нём задаются параметры в порядке, перечисленном ниже:

  • тип линии, в нашем случае solid (сплошная)
  • толщина линии, в нашем случае 1px
  • цвет линии, в нашем случае синий
  • Напомним ещё раз, как выглядит задание цвета рамки для ячейки:

    Td { border: 1px solid blue; }

    Как изменить цвет строки в таблице

    Итак, мы с вами научились менять цвета ячеек, а также ячеек-заголовков, используя возможности CSS. Если мы указываем стили для таких тегов, как th или td , то должны понимать, что применимы стили будут и к остальным тегам.

    Однако, бывают ситуации, когда надо изменить цвет конкретной ячейки или же несколько ячеек, или же всю строку целиком. Что делать в данном случае? Здесь следует использовать классы, а также осуществлять применение их стилей. На практике это выглядит вот так:

    RowGreen { background-color:green; }

    А чтобы изменить цвет с помощью этого класса определённые строки нужно сделать следующее:

    table { border: solid 1px blue; border-collapse: collapse; } td, th { border: solid 1px blue; padding: 10px; } .rowGreen { background-color: lightgreen; }

    Таблица с чередованием цвета в строках 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

    И результат в браузере:

    Как изменить цвет текста в таблице

    Для того, чтобы изменить цвет текста в таблице используется свойство color . Применять его можно к самым разным элементам: к table, tr, th, td. В зависимости от этого цвет в выбранном элементе будет изменён. Например, для всей таблицы зададим зелёный цвет шрифта:

    Table { color: green; ... }

    Аналогично можно изменять цвет для отдельных ячеек. А на этом данный урок заканчивается, не забудьте сделать домашнее задание. Всем пока!

    - 4.7 out of 5 based on 6 votes

    При создании веб страниц очень часто необходимо представить некоторое содержимое страницы в виде таблиц.

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

    Для этой цели лучше всего пользоваться средствами CSS. Но в некоторых случаях таблицы являются незаменимыми и удобными для предоставления информации.

    За создание таблиц в HTML отвечает тег

    и закрывающий тег
    . Но вам наверняка уже известно, что таблицы состоят из строчек и ячеек. Поэтому для того, чтобы создать таблицу, нам необходимы еще два тега: это тег который отвечает за создание строк, и тег, отвечающий за создание ячеек.

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

    1 - ячейка 2 - ячейка
    3 - ячейка 4 - ячейка

    Для того чтобы, увидеть что из этого получится, создайте html страницу используя код расположенный ниже. Если не знаете как создать HTML страницу, смотрите урок .

    Таблица

    1 - ячейка 2 - ячейка
    3 - ячейка 4 - ячейка

    У вас должно получиться следующее:

    Как вы видите, наша таблица еще совсем не похожа на таблицу. Все это потому, что наши теги

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

    Вначале мы рассмотрим атрибуты, которые присущи тегам

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

    И так тег

    имеет следующие атрибуты:

    border - задает ширину рамки таблицы в пикселях, записывается так:

    .

    bordercolor – цвет рамки таблицы, данный атрибут поддерживает не все браузеры, поэтому вы можете и не увидеть заданный цвет рамки:

    Мы задали ширину рамки 2 пикселя, синего цвета, таблица примет следующий вид:

    width – задает ширину таблицы в пикселях или процентах:

    height – высота таблицы в пикселях или процентах:

    Ширина таблицы будет 250 пикселей, а высота 150 пикселей, таблица будет выглядеть так:

    align – выравнивание таблицы;

    align=left – таблицы будет выровнена по левому краю;

    align=right – таблица будет выровнена по правому краю:

    Наша таблица должна выровняться по правому краю.

    bgcolor – цвет фона таблицы, bgcolor=#FFC000 – цвет фона таблицы будет желтый:

    Таблица получит следующий вид:

    background – при помощи данного атрибута можно задать изображение, которое будет фоном таблицы.

    В качестве примера сохраните маленькое изображение, которое вы видите в скобках () в ту папку, где у вас находится страница с таблицей, а к тегу

    добавьте background="fon.gif " весь код:

    Таблица примет следующий вид:

    сellpadding – атрибут, задающий левый, правый, верхний и нижний отступы внутри ячейки. Например, если к нашему тегу

    добавить сellpadding=10, то текст, написанный внутри ячеек, получит отступ.

    cellspacing – задает отступ между ячейками таблицы.

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

    прописать cellspacing=0. Весь код:

    В результате наши ячейки прижались друг к другу, а текст внутри ячеек получил отступ:

    hspace - задает промежуток от таблицы в лево и в право в пикселях, записывается так: hspace=20

    nowrap – запрещает перенос слов в ячейке, записывается просто nowrap

    Последние два атрибута применяются крайне редко, поэтому пример кода с ними я не показываю.

    Теперь рассмотрим атрибуты тега

    , некоторые из них такие же, как и атрибуты тега

    width - ширина ячейки в пикселях или в процентах.

    height – высота ячейки в пикселях или процентах.

    Например, зададим ширину первой ячейки первой строки в 30% - width=30% , а высоту первой ячейки второй строки в 100px. Код будет таким:

    1 - ячейка 2 - ячейка
    3 - ячейка 4 - ячейка

    Заметьте, достаточно задать одной ячейке высоту или ширину и все ячейки этой строки или столбца примут такой же размер. Поэтому если необходимо задать, например определенную высоту ячеек то достаточно указать этот параметр для одной ячейки и все остальные ячейки строки станут такими же.

    align – выравнивает содержимое ячеек, имеет следующие значения:

    align="lef" – содержимое ячейки будет выровнено по левому краю;

    align="right" – содержимое будет выровнено по правому краю;

    align="center" – содержимое будет выровнено по центру ячейки.

    Добавим эти атрибуты и значения в наш код и выровняем содержимое 1 - й ячейки по левому краю (по левому краю содержимое выравнивается по умолчанию, однако в некоторых случаях данный атрибут необходим), содержимое 2 – й ячейки выровняем по правому краю, а 4 -й по центру.

    1 - ячейка 2 - ячейка
    3 - ячейка 4 - ячейка

    bgcolor – при помощи данного атрибута можно задать цвет ячейки.

    background – устанавливает изображение в виде фона ячейки.

    С данными атрибутами мы уже встречались, рассматривая атрибуты тега

    . Работают они одинаково, только в этом случае ими задается фон ячейки. Например, зададим цвет фона 2-й ячейки желтым, а в качестве фона 4-й ячейки установим следующее изображение ().

    Для этого в наш код добавим необходимые атрибуты, для наших ячеек bgcolor="#FFFF00" для 2-й ячейки и background= "fon.jpg" для 4-й ячейки. В результате наша таблица станет выглядеть так:

    Как вы видите, несмотря на то что мы задавали фон самой таблицы, если задать фон ячеек таблицы, то отображаться будет именно тот фон который мы задали для ячеек.

    bordercolor – задает цвет рамки ячейки.

    C этим атрибутом мы так же встречались, рассматривая атрибуты тега

    . Напоминаю, что он работает не во всех браузерах. Обратите внимание на то, что у тега
    нет атрибута border обозначающего рамку ячейки. Зададим цвет рамки 2 – й ячейки красным для этого ко второй ячейке добавим атрибут bordercolor="#FF0000"

    Существует еще один атрибут, предназначенный для выравнивания содержимого ячеек:

    valign – он производит выравнивание содержимое ячеек по вертикали.

    Имеет следующие значения:

    valign="top" – выравнивание содержимого ячейки по верхнему краю;

    valign="bottom" – выравнивание содержимого ячейки по нижнему краю;

    valign="middle" – выравнивание посередине ячейки;

    valign="baseline" – выравнивание содержимого ячейки по базовой линии.

    Добавим эти атрибуты к каждой из наших 4-х ячеек.

    1 - ячейка 2 - ячейка
    3 - ячейка 4 - ячейка

    Наша таблица примет следующий вид:

    Последнее что нам необходимо рассмотреть в этом уроке, это объединение ячеек таблицы. Для того чтобы объединить несколько ячеек в строке, существует атрибут colspan="" где в кавычках указывается количество ячеек которое необходимо объединить.

    Если бы я всегда придерживался принципа разумной достаточности, вы бы сейчас не читали эти строки. Это я к тому, что, хотя предложенная тема достаточно хорошо раскрыта, и существующие решения меня вполне удовлетворяют, все же они не смогли привести меня в состояние полного душевного спокойствия… в общем, я принялся изобретать велосипед.

    Речь пойдет о «полосатых» HTML-таблицах, т.е. о таблицах с чередующимися строками разных стилей. В частности, для улучшения восприятия данных, эти строки могут быть разноцветными. Ниже пример такой таблицы:

    Я поставил себе следующую задачу: не изменяя HTML-файл:

    Ланцетники 30 видов Хордовый скелет
    Хрящевые рыбы 600 видов Хрящевый скелет
    Костные рыбы 20 000 видов Костный скелет
    Земноводные 3 000 видов Ажурный скелет
    Пресмыкающиеся 6 000 видов Сплошной скелет
    Птицы 8 000 видов Сплошной скелет
    Млекопитающие 4 000 видов Сплошной скелет
    задать отдельные стилевые классы для четных и нечетных строк таблиц с классом stripy .

    Стандартный путь

    В сети по запросу «полосатые таблицы» или «таблица зебра» ("striped tables", "zebra tables"), легко обнаружить нужные материалы по теме. Как правило, предлагаемые решения - различные вариации одной идеи: используя JavaScript и DOM, находим в HTML-документе требуемые таблицы (класс stripy) и добавляем необходимые классы (к примеру, oddrows и evenrows) их строкам, в зависимости от того, четная это строка или нет. Это может быть реализовано таким образом:

    < tabs.length; e++) if (tabs[e].className == tabClass) { var rows = tabs[e].getElementsByTagName("tr"); for (var i = 0; i < rows.length; i++) // строки нумеруются с 0 rows[i].className += ((i % 2) == 0 ? " oddrows" : " evenrows"); } }

    Привязав вызов данной функции к событию onload страницы, мы добьемся нужного результата.

    Пожалуй, на сегодняшний день это оптимальное решение, однако оно не оставляет HTML-код нетронутым. Мне же было интересно решить проблему исключительно средствами CSS, или, по крайней мере, возложить на CSS задачу по изысканию этих средств.

    Идеальное решение

    Можно ли решить задачу «чистым» CSS? Можно, если браузер поддерживает CSS3. Изучив спецификации, мы находим там новый псевдо-класс :nth-child() , несомненно появившийся под влиянием сабжа, и благодаря которому необходимые стили задаются очень просто:

    /* нечетная строка таблицы класса stripy */ .stripy tr:nth-child(2n+1){ ... } /* четная строка таблицы класса stripy */ .stripy tr:nth-child(2n){ ... }

    Увы, современные браузеры в абсолютном большинстве пока не поддерживают это. А что же CSS2? Здесь, к сожалению, подходящих инструментов совсем немного. Частично решить проблему можно с помощью селектора :

    Stripy tr { ... } /* 1-я строка */ .stripy tr + tr { ... } /* 2-я строка */ .stripy tr + tr + tr { ... } /* 3-я строка */ .stripy tr + tr + tr + tr { ... } /* 4-я строка */ .stripy tr + tr + tr + tr + tr { ... } /* 5-я строка */

    однако данный метод подходит только для таблиц с относительно небольшим и заранее известным числом строк, кроме того, его никак нельзя назвать удобным. Что же остается? Остается использовать дополнительные возможности каждого отдельного браузера. Я попытался найти решение для Windows версий Internet Explorer, Mozilla и Opera.

    Internet Explorer

    С этим браузером трудностей не возникло. Воспользовавшись способностью IE задавать значения CSS-свойствам динамически с помощью expression() , задачу чередующихся разноцветных строк, к примеру, легко решить следующим способом:

    Stripy tr{ background: expression(this.rowIndex % 2 == 0 ? "#ffe" : "#efe"); }

    Для определения этим методом не одного свойства, а целого стиля для соответствующих табличных строк (добавить классы oddrows и evenrows), код придется усложнить, или воспользоваться технологией DHTML Behaviors :

    Stripy tr{ behavior: url(stripy.htc); } /* нечетная строка */ /* четная строка */

    В приведенном примере реализовывается задуманное: добавляются необходимые классы строкам, в зависимости от того, четная это строка или нет. Такое поведение тега tr описано в файле stripy.htc:

    stripy.htc //

    Использованные технологии были впервые представлены в Internet Explorer версии 5, соответственно таблицы с классом stripy станут «зебрами», начиная с этой версии.

    Gecko

    Расширение, подобное DHTML Behaviors воплощено и в браузерах с движком Gecko. Веб-разработчикам позволено, как определять новые элементы на странице, так и переопределять внешний вид, содержимое и поведение стандартных. Для этого используется XBL (XML Binding Language). Данная технология обладает бóльшими возможностями по сравнению с разработкой от Microsoft и, казалось, что с решением поставленной задачи трудностей не возникнет, но не тут-то было.

    В CSS XBL-привязка задается подобно behavior с помощью свойства -moz-binding:

    Stripy tr{ -moz-binding: url(stripy.xml); }

    Оставалось в XBL-файле stripy.xml описать поведение нужных тегов, однако, несмотря на все свои усилия, мне не удалось «привязать» ни тег tr , ни другие табличные теги. Причиной этой неприятности оказался Bugzilla Bug 83830 : Binding TD cells (with XBL) doesn"t work, at all . Как бы это не было обидно, но по всему выходило, что на XBL не стоит рассчитывать. К счастью, решение все же было найдено!

    Помощь пришла от известного веб-гуру Дина Эдвардса (Dean Edwards), создавшего XBL-обертку , позволяющую Gecko-браузерам использовать технологию Microsoft DHTML Behaviors, а это значит, для решения задачи можно задействовать тот же файл stripy.htc , что и для IE!

    Для этого нам понадобится два XBL-файла: moz-behaviors.xml (непосредственно обертка, взять можно на сайте Дина Эдвардса, весит меньше 7K) и bindings.xml (вспомогательный, промежуточный файл «между» CSS и moz-behaviors.xml , код ниже по тексту). Теперь, чтобы.htc -файл заработал и в Mozilla, необходимо следующее:

    .stripy tr{ -moz-binding: url(bindings.xml#stripy.htc); }

    В общем случае все отлично работает, но изменить поведение тега tr все равно не удастся из-за упомянутого выше бага, но умнице Эдвардсу удалось решить и эту проблему. Для нашего случая СSS-код следует дополнить:

    /* необходимое дополнение для успешной привязки табличных тегов */ .stripy{ -moz-binding: url(bindings.xml#table); } /* HTC behavior при помощи XBL-привязки */ .stripy tr{ -moz-binding: url(bindings.xml#stripy.htc); } /* нечетная строка */ .stripy .oddrows{ background:#ffe; ... } /* четная строка */ .stripy .evenrows{ background:#efe; ... }

    Содержимое файла bindings.xml должно быть следующим:

    bindings.xml

    Теперь все отлично работает. Таблицы с классом stripy станут «зебрами» в браузерах на движке Gecko, начиная с версии 1.0.

    Opera

    К сожалению, этот представитель семейства веб-проводников не располагает механизмами расширения сравнимыми с конкурентами. Да, в 9-й версии появились виджеты , но с их помощью невозможно как-либо повлиять на работу браузера. Что делать? Opera не оставила выбора, кроме как воспользоваться запрещенным приемом. Начиная с 7-й версии, браузер (как впрочем, и IE, начиная с версии 5) обладал интересной «особенностью» - возможностью выполнять скрипты прямо из CSS. Для этого используется любое CSS-свойство, позволяющее в качестве значения указывать путь к файлу. Вот пример такой техники:

    Body{ background-image: url("javascript: alert("Hi");"); }

    Opera запускает сценарий только для существующих HTML-элементов и только один раз. Почему бы этим не воспользоваться и не позаимствовать скрипт, упоминавшийся выше? Я так и сделал, хотя стоит признаться, с данным приемом возникали определенные сложности и не все сценарии были «послушными»:

    Function makeStripy(tabClass) { var tabs = document.getElementsByTagName("table"); for (var e = 0; e < tabs.length; e++) if (tabs[e].className == tabClass) { var rows = tabs[e].getElementsByTagName("tr"); for (var i = 0; i < rows.length; i++) rows[i].className += ((i % 2) == 0 ? " oddrows" : " evenrows"); } } if (window.opera) makeStripy("stripy");

    Этот скрипт успешно выполниться в Opera и через CSS:

    Stripy tr{ background-image: url("javascript:function makeStripy(tabClass){var tabs=document.getElementsByTagName("table");for (var e=0;e