суббота, 23 августа 2014 г.

[вёрстка] Делаем для сайта слайдер на CSS. Часть 4. Красивый слайдер с прокруткой.

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

[вёрстка] Делаем для сайта слайдер на CSS. Часть 3.

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

пятница, 22 августа 2014 г.

[вёрстка] Как сделать слайдер на CSS и HTML. Часть 2.

В предыдущей статье мы рассмотрели, как сверстать простой слайдер при помощи CSS без использования JS-скриптов. Сейчас разберём еще один вариант оформления слайдера — с кнопками «вперёд» и «назад».

[вёрстка] Как сделать слайдер на CSS и HTML, без Javascript

В одной из предыдущих статей мы рассмотрели, как сделать вкладки на CSS при помощи трюка с радио-кнопками. В этой статье мы при помощи аналогичного подхода создадим симпатичный слайдер, не требующий Javascript для работы.

Слайдеры, как правило делаются с использованием Javascript. Обычно для этого задействуют библиотеку JQuery. Хотя CSS и не позволяет создать полнофункциональный слайдер с кучей возможностей, таких как анимация по таймеру, листание пальцем на тач-скрине и т.п., во многих случаях такие продвинутые возможности и не требуются.

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

Поехали!

суббота, 16 августа 2014 г.

[вёрстка] Верстаем панель вкладок для сайта. Часть 4.

В предыдущей статье мы смогли создать красивую и технологичную панель вкладок с использованием :target и даже сделали приятную анимацию переключения вкладок. Однако панель вкладок получилась фиксированного размера. Можно ли её переверстать так, чтобы высота панели менялась в зависимости от содержимого вкладок?

пятница, 15 августа 2014 г.

[вёрстка] Делаем на CSS панель вкладок для сайта. Часть 3.

Ранее мы рассмотрели два способа создания панели вкладок для сайта: первый на основе якорей и свойства overflow, и второй на основе переключателей (радиокнопок).

Существует также третий способ добиться переключения вкладок — при помощи селектора :target и всё тех же якорей

четверг, 14 августа 2014 г.

[вёрстка] Как сделать вкладки на чистом CSS и HTML (часть вторая)

В первой части мы рассмотрели, как сделать вкладочный интерфейс при помощи свойства overflow и ссылок-якорей. Этот способ совместим со всеми браузерами, включая самые древние.

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

Чтобы запоминать выбранную пользователем вкладку, нам нужно хранить некоторое состояние, то есть нам нужны переменные. Работать с переменными мы можем из языков программирования, таких как JavaScript. Но поскольку наша задача — сделать вкладки без JavaScript, нужно придумать что-то еще. Как я говорил в предыдущей части, CSS является описательным языком и не имеет переменных. Тем не менее, запомнить «куда нажал пользователь» мы всё же можем, применив одну хитрость. Для этого используем имеющиеся в HTML элементы управления: флажки (англ. checkboxes) и переключатели (англ. radio buttons).

[вёрстка] Как при помощи CSS сделать оформление для флажков (checkboxes) и переключателей (radiobuttons)

Итак, сегодня мы рассмотрим, как делается оформление для чекбоксов и переключателей.

среда, 13 августа 2014 г.

[вёрстка] Про приоритет применения стилей CSS

В каком порядке каскадные стили будут применены к тегам HTML вашей веб-страницы? Приоритет применения стилей определяется в три приёма: по источнику стиля, специфичности селектора и порядку следования стилей в файле.

Источник стиля (Origin)

Существует 3 источника стилей:
  • Стили браузера, заданные по умолчанию.
  • Стили, определенные пользователем. (Например, к ним относятся стили, заданные через аддон Stylish Файрфокса.)
  • Стили, определённые автором страницы.
Кроме того, стили пользователя и автора могут быть обычные или важные (ключевое слово !important).

Всё вместе это образует следующую иерархию стилей:
  1. Стили браузера.
  2. Обычные стили пользователя.
  3. Обычные стили автора.
  4. Важные стили автора.
  5. Важные стили пользователя.
Стили применяются в указанном порядке. То есть, обычные стили пользователя перекрывают стили браузера. Обычные стили автора перекрывают стили браузера и обычные стили пользователя. Затем вступают в действие важные стили автора. И наконец, важные стили пользователя перекрывают стили из прочих источников.

Специфичность (Specificity)

Стили из одного источника соревнуются по специфичности. Специфичность можно представить как набор из четырёх чисел: a, b, c, d. Специфичность вычисляется следующим образом:

Если стиль внёдрён в тег HTML при помощи свойства style, специфичность такого стиля считается равной 1-0-0-0.

В ином случае (то есть когда стиль задан в таблице стилей) вычисляется специфичность селектора:
  • В число b записывается количество отсылок к #идентификатору тега.
  • В число c записывается количество отсылок к .классам, :псевдоклассам и [атрибутам].
  • В число d записывается количество отсылок к элементам и ::псевдо-элементам.
Примеры:

Внедрённый стиль: <p style="color: green"> — специфичность: 1-0-0-0.
Селектор: li:first-child h2 .title — специфичность: 0-0-2-2.
Селектор: #nav .selected > a:hover — специфичность: 0-1-2-1.
Селектор: body #content .data img:hover — специфичность: 0-1-2-2.
Селектор: div.article ul li — специфичность: 0-0-1-3

Стили сортируются по специфичности. В наших примерах это будет:
  1. 0-0-1-3
  2. 0-0-2-2
  3. 0-1-2-1
  4. 0-1-2-2
  5. 1-0-0-0
Именно в таком порядке стили и будут применены. То есть, из наших стилей div.article ul li наименее специфичен (имеет наименьший приоритет). Затем идёт стиль li:first-child h2 .title. Затем — #nav .selected > a:hover. И так далее. Внедрённый в HTML-тег стиль всегда имеет максимальную специфичность.

Важное уточнение:
Псевдо-класс :not не принимает участие в подсчёте. Но селектор, находящийся внутри скобок :not() принимает участие в подсчёте. Например: .article :not(p) — специфичность 0-0-1-1.

Еще одно уточнение:
Специфичность вычисляется только для обычных стилей. Для важных стилей специфичность не играет роли. Можно считать, что специфичность важных стилей всегда максимальна.

Порядок следования стилей (order)

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

Стили, импортированные директивой @import считаются расположенными выше стилей в самом файле.

пятница, 1 августа 2014 г.

[вёрстка] Как сделать горизонтальное меню для сайта

Классическим средством навигации по сайту является горизонтальное меню в шапке сайта. Посмотрим, как сделать простое горизонтальное меню на HTML и CSS.