Создание прокручивающейся таблицы товаров
18 января 2017 | Опубликовано в css | 1 Комментарий »
Прокручивание элементов внутри страницы обычно является плохим дизайнерским решением: велика вероятность, что пользователи спутают полосу прокрутки внутреннего элемента и страницы браузера, что снизит удобство использования. Хотя в редких случаях можно рассматривать вариант прокрутки элементов HTML. Один из таких случаев — таблица товаров, в которой товары или услуги с небольшими, но важными различиями представлены в виде строк.
Давайте рассмотрим разметку и код CSS для таблицы.
Код HTML довольно очевиден: раздел шапки таблицы <thead> с названиями столбцов, основное содержимое таблицы <tbody>, в этом случае это центральные процессоры, и подвал таблицы <tfoot>. Довольно необычно, что подвал таблицы расположен в коде до основного содержимого, но в браузере автоматически появляется под ним. В этом примере в подвале нет данных и он играет исключительно декоративную роль.
<table> <thead> <tr> <th>Package <th>Manufacturer <th>Name <th>Speed <th>Cores <th>Cache <th>Price <tfoot> <tr> <td colspan=6> <tbody> <tr> <td><img src=amd-opteron.jpg alt="AMD Opteron 6172 Twelve-Core 2.1GHz"> <td>AMD <td>Opteron 6172 <td>2.1 GHz <td>12 <td>18 MB <td>$1,199.99 <tr> <td><img src=i7-3960X.jpg alt="Intel Core i7-3960X Processor"> <td>Intel <td>Core i7-3960X <td>3.3 GHz <td>6 <td>15 MB <td>$1,049.99 … </table>
Как шапка, так и подвал таблицы содержат вертикальные градиенты от белого к прозрачному и в обратном порядке в подвале. Чтобы содержимое таблицы прокручивалось вертикально, нужно проделать четыре следующие действия:
- Задать содержимому таблицы отображение блоком.
- Ограничить высоту определенным значением.
- Выбрать автоматическое значение свойству всплытия.
- Спрятать лишнее с помощью свойства всплытия по оси X.
Весь код CSS без приставок производителей, которые и не нужны для большинства современных версий браузеров, для линейных градиентов представлен ниже:
table { border-collapse: collapse; box-sizing: border-box; } td img { width: 100px; height: 100px; } table, thead, tbody { display: block; position: relative; } thead, tbody, tfoot { width: 700px; } th, td { padding: 1.2rem; } thead { background-image: linear-gradient(rgba(255,255,255,1) 70%, rgba(255,255,255,0)); z-index: 2; } tbody { height: 270px; overflow: auto; overflow-x: hidden; margin-top: -20px; } tfoot { background: linear-gradient(rgba(255,255,255,0) 30%, rgba(255,255,255,1)); position: absolute; bottom: 0; height: 20px; z-index: 3; }
Содержимому таблицы также задано относительное позиционирование, чтобы поднять его под элемент шапки таблицы, а у элемента подвала — абсолютное позиционирование, чтобы он мог быть размещен над содержимым таблицы.
Автор урока Dudley Storey
Перевод — Дежурка
Смотрите также:
Комментарии
Похожие статьи
- Использование множественных фоновых изображений CSS: основы
- Создание элементов, расположенных ровно по центру, с высотой и шириной, заданными в процентах
- Использование плавной прокрутки и ее недостатки
- Использование тега span для разделения слов в ссылках в CSS
- Использование порядка расположения множественных фоновых изображений