Семантическая HTML-структура для набора ссылок на изображения (с эффектом наведения), заголовка и описания?
Вопрос
У меня есть набор элементов (или список элементов, но я не хочу подразумевать использование списка), они содержат ссылку на изображение, заголовок и описание. Ссылка на изображение нуждается в эффекте наведения (альфа изменяется при наведении курсора мыши), и есть определенный способ их размещения: изображение слева, затем заголовок и описание справа. также есть фон для всего блока элементов.
Решение
Я бы сказал, что использование <DL>
для этой цели на самом деле менее семантическое, чем использование <DIV>
- вы наверняка не создаете список определений. Р>
Ссылка, заголовок и абзац, заключенные в div, кажутся мне вполне приемлемыми. Вместо этого вы можете попробовать использовать неупорядоченный список; но у вас, вероятно, будут те же (или еще хуже, так как у вас больше не будет разделения dt / dd) проблемы с CSS, как у вас с <=>. Кроме того, использование тегов заголовка также не будет проверяться в элементе списка, поэтому вам придется прибегнуть к другому абзацу / div / span - определенно менее чем идеально.
Обновление (на основе комментария idrumgood ниже):
Заголовок (и другие элементы уровня блока) проверяются в неупорядоченном элементе списка, поэтому, возможно, следующий подход будет и семантическим, и будет работать с вашими стилями:
<ul>
<li>
<a href="#"> </a> <!-- image link with background hover -->
<h4>Title</h4>
<p>description goes here</p> <!-- perhaps you won't need the actual paragraph tag -->
</li>
</ul>
Другие советы
Я думаю, что ваш последний пример совершенно хорош. Вы используете теги, которые точно описывают содержимое, которое они содержат, и даже если бы вы отключили свои стили, общая идея страницы все равно была бы там (ключ к семантической сети).
Я согласен с idrumgood, это не список проектов, это набор проектов. Используйте div, это вполне допустимое использование. Если бы вы использовали HTML5, вы бы использовали & Quot; section & Quot; для каждого элемента и " figure " для скриншота.