Загрузка. Пожалуйста, подождите...

                    

                        
RSS
  • Главная
  • Регистрация
  • Карта сайта
  • О нас

» Web-дизайнерам » Полосатые таблицы

Полосатые таблицы

Web-дизайнерам Комментарии (17)

О полосатых таблицах, или как их еще называют "Зебровые таблицы" все думают по-разному. Кому-то они облегчают поиск (особенно если таблица большая), кому-то доставляют эстетическое удовольствие (они выглядят куда лучше, чем обычные однотонные таблицы).

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

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

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

Хочу сразу предупредить, что подсветка не будет работать в IE6, так как мы используемый легкий CSS. Как вариант, можно использовать событие onmouseover, но это существенно утяжелит код, а если учесть, что основная цель - сделать полосатую таблицу, и мы ее достигнем во всех браузерах приведенным ниже методом, то отсутствие подсветки не повлияет ни на что, ведь пользователи IE также не заметят никаких изъянов в таблице.

Конечно же, можно воспользоваться стилями и задавать поочередно классы таблицы через строчку, либо просто в параметры строки вписывать фон и шрифт. Но, во-первых, это очень нудно и долго, а во-вторых, представьте, что вам нужно вставить в таблицу одну строчку где-нибудь посередине. Что вы будете делать? Переписывать свойства/классы у всех строчек ниже? Не кажется ли вам это нецелесообразным?

Мы будем использовать CSS и javascript.
Итак, создаем файл, называем его, к примеру, stripes.js со следующим содержанием:
function makeStripe(tab)
{
    var rows = tab.getElementsByTagName("tr");
    if (!rows)
        return;
    for(var i=0; i<rows.length; i++)
        rows[i].className = ((i%2)==0 ? "odd" : "even");
}


Для загрузки скрипта вписываем между <HEAD> и </HEAD> следующий код:
<script type="text/javascript" src="Путь_к_файлу/strips.js"></script>

В файл со стилями пишем:
thead { /* Заголовок таблицы */
    color: #fff; /* Цвет текста */
    background-color: #7b7b7b; /* Цвет фона */
}

tr.odd:hover { /* Нечетные строки при наведении курсора */
    color: #fff;
    background-color: #7b7b7b;
}
tr.even:hover { /* Четные строки при наведении курсора */
    color: #fff;
    background-color: #777777;
}

tbody .odd { /* Нечетные строки без наведения курсора */
    color: #000;
    background-color: #ececec;
}
tbody .even { /* Четные строки без наведения курсора */
    color: #000;
    background-color: #bbbbbb;
}


Далее в <BODY> странички пишем:
<body onload="makeStripe(document.getElementById('tab1'));">

А таблице присваиваем идентификатор, указанный выше (в нашем случае, это tab1):
<table id="tab1" cellpadding="0" cellspacing="0" border="1">
    <thead>
        <tr>
            <th>Заголовок1</th>
            <th>Заголовок2</th>
            <th>Заголовок3</th>
        </tr>
    </thead>
    <tbody>
        <tr><td>Ячейка11</td><td>Ячейка12</td><td>Ячейка13</td></tr>
        <tr><td>Ячейка21</td><td>Ячейка22</td><td>Ячейка23</td></tr>
        <tr><td>Ячейка31</td><td>Ячейка32</td><td>Ячейка33</td></tr>
        <tr><td>Ячейка41</td><td>Ячейка42</td><td>Ячейка43</td></tr>
        <tr><td>Ячейка51</td><td>Ячейка52</td><td>Ячейка53</td></tr>
        <tr><td>Ячейка61</td><td>Ячейка62</td><td>Ячейка63</td></tr>
        <tr><td>Ячейка71</td><td>Ячейка72</td><td>Ячейка73</td></tr>
        <tr><td>Ячейка81</td><td>Ячейка82</td><td>Ячейка83</td></tr>
        <tr><td>Ячейка91</td><td>Ячейка92</td><td>Ячейка93</td></tr>
    </tbody>
</table>


Что из этого получилось, можно посмотреть ЗДЕСЬ.

Если вы хотите сделать на одной странице несколько таблиц одного вида, то необходимо присваивать разным таблицам разние идентификаторы.
То есть, в <BODY> пишем для двух таблиц:
<body onload="makeStripe(document.getElementById('tab1')); makeStripe(document.getElementById('tab2'));">

А второй таблице, соответственно, присваиваем id="tab2". Аналогично и для большего количества таблиц на одной странице.
Стикеры на мониторе:
“Пылесосить”, “Качать пресс”
Но важнейший из десятка –
“Подпишись на RSS!”

Хотите получать информацию о новых записях на e-mail? Подпишитесь на RSS-рассылку. Введите адрес вашей электронной почты в форму ниже и нажмите "Подписаться".

Уважаемый посетитель, вы зашли на сайт как незарегистрированный пользователь. Оставленные комментарии отправляются на модерацию. После регистрации появится возможность попасть в список Комментаторов.


Другие новости по теме:

  • Псевдокласс hover в IE6
  • CSS-Хаки
  • Настраиваем рекламную строчку Nolix
  • Отступы после изображений в IE6/7
  • Панель социальных сервисов
  • 19-12-2009, 15:14 
    Просмотров: 2669



    #1 написал: virgin (30 марта 2010 02:17)



    Группа: Гости
    Регистрация: --
    чёрт у меня нету хостинга, есть просто блог в блоггере, как там замутить такую штуку? Там лишь есть один файл для редоктирования css стиля. Я много раз видел блоги на этом сервисе с подобными конфетными таблицами, а сам не могу сделать.
    ICQ: -- [цитировать]

    #2 написал: gwer (30 марта 2010 10:01)



    Группа: Администраторы
    Регистрация: 4.12.2009
    virgin, вместо вынесения javascript'а в отдельный файл его можно прописать прямо в коде страницы между тегами <head></head>:

    <script type="text/javascript">
    function makeStripe(tab)
    {
    var rows = tab.getElementsByTagName("tr");
    if (!rows)
    return;
    for(var i=0; i<rows.length; i++)
    rows[i].className = ((i%2)==0 ? "odd" : "even");
    }
    </script>


    А дальше уже по инструкции выше преобразуем шаблон и CSS-файл.
    ICQ: -- [цитировать]

    #3 написал: virgin (30 марта 2010 14:33)



    Группа: Гости
    Регистрация: --
    Ошибка Element type "rows.length" must be followed by either attribute specifications, ">" or "/>"
    Видимо здесь
    for(var i=0; i<rows.length; i++)

    и здесь
    <body onload="makeStripe(document.getElementById('tab1')); makeStripe(document.getElementById('tab2'));">
    ICQ: -- [цитировать]

    #4 написал: gwer (30 марта 2010 14:39)



    Группа: Администраторы
    Регистрация: 4.12.2009
    <body onload="makeStripe(document.getElementById('tab1')); makeStripe(document.getElementById('tab2'));">

    Это для двух таблиц.

    Для одной:
    <body onload="makeStripe(document.getElementById('tab1'));"&g
    t;

    Тоже не работает?
    Точно все по инструкции?
    ICQ: -- [цитировать]

    #5 написал: virgin (30 марта 2010 16:31)



    Группа: Гости
    Регистрация: --
    Испробовал всё что мог, лишь в одном месте штмл не выдаёт ошибку.
    Между <head> </head> и перед началом формы комментариев /* Begin Comments*/
    Вставил сразу оба кода
    thead { /* Заголовок таблицы */
    color: #fff; /* Цвет текста */
    background-color: #7b7b7b; /* Цвет фона */
    }

    tr.odd:hover { /* Нечетные строки при наведении курсора */
    color: #fff;
    background-color: #7b7b7b;
    }
    tr.even:hover { /* Четные строки при наведении курсора */
    color: #fff;
    background-color: #777777;
    }

    tbody .odd { /* Нечетные строки без наведения курсора */
    color: #000;
    background-color: #ececec;
    }
    tbody .even { /* Четные строки без наведения курсора */
    color: #000;
    background-color: #bbbbbb;
    }

    и

    <script type="text/javascript">
    function makeStripe(tab)
    {
    var rows = tab.getElementsByTagName("tr");
    if (!rows)
    return;
    for(var i=0; i<rows.length; i++)
    rows[i].className = ((i%2)==0 ? "odd" : "even");
    }
    </script>
    Никаких ошибок не написал.
    После этого добавил сразу после <body> эту строку
    <body onload='makeStripe(document.getElementById('tab1'));'&g

    t;
    Написал ошибку, я добавил в конце знак /
    <body onload='makeStripe(document.getElementById('tab1'));'/&

    gt;
    Ошибки не написал.
    Затем создал новое сообщение в которое вставил код таблицы
    <table id="tab1" cellpadding="0" cellspacing="0" border="1">
    <thead>
    <tr>
    <th>Заголовок1</th>
    <th>Заголовок2</th>
    <th>Заголовок3</th>
    </tr>
    </thead>
    <tbody>
    <tr><td>Ячейка11</td><td>Ячейка12</td><td>Яч

    ейка13</td></tr>
    <tr><td>Ячейка21</td><td>Ячейка22</td><td>Яч

    ейка23</td></tr>
    <tr><td>Ячейка31</td><td>Ячейка32</td><td>Яч

    ейка33</td></tr>
    <tr><td>Ячейка41</td><td>Ячейка42</td><td>Яч

    ейка43</td></tr>
    <tr><td>Ячейка51</td><td>Ячейка52</td><td>Яч

    ейка53</td></tr>
    <tr><td>Ячейка61</td><td>Ячейка62</td><td>Яч

    ейка63</td></tr>
    <tr><td>Ячейка71</td><td>Ячейка72</td><td>Яч

    ейка73</td></tr>
    <tr><td>Ячейка81</td><td>Ячейка82</td><td>Яч

    ейка83</td></tr>
    <tr><td>Ячейка91</td><td>Ячейка92</td><td>Яч

    ейка93</td></tr>
    </tbody>
    </table>
    Появилась таблица но она обычная, без подсветки при наведении или нажатии.
    Может не туда вставляю?
    ICQ: -- [цитировать]

    #6 написал: gwer (30 марта 2010 16:55)



    Группа: Администраторы
    Регистрация: 4.12.2009
    Если стили вставляются не в css-файл, а в html-документ, то их надо обрамлять в тег
    <style type="text/css"></style>

    Чтобы браузер понимал, что это стиль.

    Если не поможет - можно ссылку на страничку с таблицей и скриптом/стилями, чтобы я мог оценить визуально?
    ICQ: -- [цитировать]

    #7 написал: virgin (30 марта 2010 17:18)



    Группа: Гости
    Регистрация: --
    http://table-test.blogspot.com/ адрес блога
    ***@mail.ru
    ******
    в настройках выбрать дизайн и редактировать штмл.
    ICQ: -- [цитировать]

    #8 написал: gwer (30 марта 2010 17:53)



    Группа: Администраторы
    Регистрация: 4.12.2009
    На всякий случай потер почту и пароль. Немного поковыряв, я выяснил, что blogger.com - очень упрямая платформа, которая воспринимает все как хочет, и меняет все как хочет.
    Скрипт, видимо, только подгружать получится. На тестовой страничке у Вас сделал подгрузку с моего сайта. Можно так оставить, но для пущей безопасности я бы перезалил куда-нибудь. На те же гугл-сайты (Вроде бы куда-то можно) и уже оттуда брал этот файл.

    Также тег <body> было достаточно указать один раз и немного пошаманить с кавычками - опять же платформа их меняла как хотела.

    Сейчас, вроде бы, все работает нормально.
    ICQ: -- [цитировать]

    #9 написал: virgin (30 марта 2010 18:41)



    Группа: Гости
    Регистрация: --
    всё ясно спасибо smile
    ICQ: -- [цитировать]

    #10 написал: gwer (30 марта 2010 18:50)



    Группа: Администраторы
    Регистрация: 4.12.2009
    Да незачто smile
    Заглядывайте к нам еще winked
    Этот код не до конца работает в IE6 (подсветки строк выделенных нет), но фикс данной проблемы в сим неудачном творении мелкомягких программеров я описывал в другой статье: Псевдокласс HOVER в IE6, может быть пригодится =)
    ICQ: -- [цитировать]

    #11 написал: kori (3 апреля 2010 11:02)



    Группа: Гости
    Регистрация: --
    Здравствуйте!
    У меня вопрос если, у tr стоит id, это может как-то помешать работе скрипта? почему-то не работает у меня этот эффект. id добавляется автоматически.
    ICQ: -- [цитировать]

    #12 написал: gwer (3 апреля 2010 12:28)



    Группа: Администраторы
    Регистрация: 4.12.2009
    Здравствуйте, kori.
    Если я проблему понял правильно, то мешать это не должно. Вы можете дать ссылку на пример таблицы, чтобы я мог посмотреть, где возможна ошибка?
    ICQ: -- [цитировать]

    #13 написал: virgin (13 июля 2010 19:33)



    Группа: Гости
    Регистрация: --

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

    Или как нибудь сделать эту гиперссылку к тексту, но так чтобы текст в таблице - не превращался в полужирный, как у всех ссылок в блоге?

    вот черновик

    http://test-table2.blogspot.com/2010/04/skype-12-2009_14.html  я бы хотел чтобы нажимая на выделенную ячейку курсором - он переходил на нужную страницу (согласно списку), но текст не становился жирным как у гиперссылок. Как изменить общий вид гиперссылок и снять жирное выделение со всех гиперссылок в блоге я знаю, но я не хочу изменять это, потому что во всём блоге - полужирные гиперссылки - очень гармонируют по дизайну. надеюсь я выразил мысль

    ICQ: -- [цитировать]

    #14 написал: gwer (23 июля 2010 16:44)



    Группа: Администраторы
    Регистрация: 4.12.2009

    <tr style="cursor: pointer;" onclick="location.href='http://webholt.ru'">


    Параметр стиля изменяет курсор, ссылка на джаваскрипте сделана. В данном случае ссылка распространяется на всю строку. Аналогично можно делать для ячейки, только нужно задавать соответственно параметры для отдельной ячейки (TD вместо TR).

    Либо можно делать ссылку html-тегами, но ссылку делать с классом. То есть, допустим, в CSS пишем:

    A:link.tablelink{
    Параметры обычной ссылки
    }
    A:visited.tablelink{
    Параметры посещенной ссылки 
    }
    A:active.tablelink{
    Параметры активной ссылки
    }
    A:hover.tablelink{
    Параметры ссылки при наведении на нее
    }


    А ячейка тогда должна содержать:

    <a class="tablelink" href="http://webholt.ru">Ячейка22</a>

    Таким образом можно задавать отдельный стиль для ссылок, в которых используется класс "tablelink".

    ЗЫ: извиняюсь за задержку, был на отдыхе, интернет под рукой отсутствовал.

    ICQ: -- [цитировать]

    #15 написал: virgin (24 июля 2010 22:57)



    Группа: Гости
    Регистрация: --

    спс, первый вариант с джава сразу заработал, классно!

    я думаю это не замедлит работу? если там 30 джава кодов с разными ссылками для каждой ячейки сделать?

    второй вариант уж больно сложный, и неизвестно как блоггер прореагирует на эти изменения в ксс.

    ICQ: -- [цитировать]

    #16 написал: gwer (24 июля 2010 23:57)



    Группа: Администраторы
    Регистрация: 4.12.2009

    Не должен замедлять в принципе...

    А второй вариант, на самом деле, достаточно прост, если быть хотя бы поверхностно знакомым с CSS. А Блоггер не должен быть против)

    ICQ: -- [цитировать]

    #17 написал: adder (16 сентября 2011 19:45)



    Группа: Гости
    Регистрация: --
    Спасибо, долго искал потходящий метод.
    ICQ: -- [цитировать]

    Добавление комментария


    Ваше Имя:
    Ваш E-Mail:
    Код: Включите эту картинку для отображения кода безопасности
    обновить, если не виден код
    Введите код






    Купить мебель в озерах
    Электронный адрес для заказа товара. Мягкая мебель, кухни на заказ.
    meblider.ru
    Ренессанс кредит рязань
    О кредитах Новости рынка труда
    1kredit.org
    • QR-код данной страницы

    • Вход на сайт

        Логин
        Пароль
         
        » Регистрация на сайте!
        » Забыли пароль?
    • Навигация

      • Главная
      • Web-дизайнерам
      • CSS-хитрости
      • SEO
      • Сервисы
      • Заработок в интернете
        • На сайте
        • Без сайта
      • Photoshop
      • Интернет-полезности
      • BestMasterиZация
      • Обзоры
      • Цитаты
      • Из зомбоящика
      • Блог
      • Разработка
      • Проекты
      • Мое мнение
      • Обманы
      • Twitter
      • Twidium
    • Опрос

        Статьи какой категории вы бы хотели видеть на сайте чаще?

        Полезности в интернете
        Хитрости CSS
        Web-дизайнерам
        Заработок в интернете
        Photoshop
        SEO


    Photoshop Online
    Просмотр скрытой информации ВКонтакте

    © WebHolt
    Рейтинг блогов
    Копирование материалов с сайта разрешено исключительно при наличии активной ссылки на сайт