Статьи

Создание страницы архива на основе изображений: стилизация

В первой части этого руководства вы узнали, как создать файл шаблона для пользовательского типа сообщения, чтобы отображать избранные изображения и заголовки для каждого сообщения. Вы зарегистрировали пользовательский тип записи «animal» и создали файл archive-animal.php для отображения архива животных.

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


В этом уроке используется дочерняя тема с темой Twenty Twelve в качестве родителя. Вам понадобится установка WordPress с установленной темой (она должна быть установлена ​​по умолчанию). Если вы не знаете, как настроить дочернюю тему, см. Инструкции к Кодексу WordPress .

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

Вам понадобится дочерняя тема, созданная в части 1 этого руководства, с файлом шаблона archive-animal.php .

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


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

Начальная страница архива без стиля

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

1
2
3
4
5
6
.post-type-archive-animal article.entry-content {
    position: relative;
    float: left;
    clear: none;
    margin: 10px;
}

Этот CSS предназначается для архива животных с помощью .post-type-archive-animal , класса, который WordPress применяет к элементу body потому что тема Twenty Twelve использует body_class() для назначения классов этому элементу.

Он удаляет все четкие настройки для элемента article и добавляет плавающее поле и поле для макета.

Теперь вы будете иметь свои списки сообщений в сетке:

Страница архива с разметкой сетки

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

Ниже CSS, который вы уже добавили, добавьте следующее:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
/* styling to add image overlay and opaque background */
.post-type-archive-animal .entry-content img {
    position: relative;
    overflow: hidden;
    background: transparent;
    float: left;
}
 
.post-type-archive-animal .archive-title {
    position: absolute;
    text-align: center;
    left: 0;
    bottom: 0;
    width: 140px;
    height: 70px;
    background: rgba(255, 255, 255, 0.5);
    padding: 50px 5px 30px 5px;
    filter: alpha(opacity=50);
}

Это делает несколько вещей. Во-первых, к .entry-content img добавляется position: relative так что абсолютное позиционирование будет работать для содержащегося в нем элемента .archive-title , а также добавление плавающего элемента, обеспечивающего корректную работу макета.

Затем, для элемента .archive-title он добавляет абсолютное позиционирование и устанавливает его, используя left и right значения. Он добавляет ширину, высоту и отступы, которые увеличивают размер до 150 на 150 пикселей, размер уменьшенных изображений в этой теме. Наконец, он добавляет полупрозрачный фон, используя rgba , с отступлением для IE, используя filter: alpha(opacity=50) .

Изображения теперь имеют текст, наложенный на полупрозрачный фон:

Заголовки теперь накладываются на изображения с полупрозрачным фоном

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

Для этого вам нужно отредактировать стиль для класса .archive-title и добавить несколько дополнительных стилей для состояния :hover следующим образом:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
/* styling to add the hover effect */
.post-type-archive-animal .archive-title {
    position: absolute;
    text-align: center;
    left: 0;
    bottom: 0;
    width: 140px;
    height: 70px;
    opacity: 0;
    padding: 50px 5px 30px 5px;
}
 
.post-type-archive-animal .archive-title:hover,
.post-type-archive-animal .archive-title a:hover {
    display: block;
    background: rgba(255, 255, 255, 0.5);
    -moz-opacity: 0.7;
    filter: alpha(opacity=50);
    opacity: 1;
}

Это обеспечивает немного другую версию стиля для элемента .archive-title с opacity установленной на 0 . Расположение, отступ и ширина точно такие же, как вы добавили ранее для эффекта наложения.

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

Когда страница архива загружается впервые, изображения появляются без наложения текста:

Текст невидим при загрузке страницы

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

Когда пользователь наводит курсор на изображение, появляется текст

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


Из этих двух уроков вы узнали, как сделать следующее:

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

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


Страницы кодекса:

Учебники:

Ресурсы CSS: