Я бы попробовал использовать display: inline-block;
для стилизации элементов, содержащих каждое изображение.
Пример HTML-кода для одного контейнера:
<style>
.figure {
display: inline-block;
}
</style>
<div class="figure">
<img src="littlepony.jpg" alt="My cute little pony" width="13" height="37" />
</div>
Теперь есть несколько ловушек, использующих это с IE6, IE7 и Firefox 2:
- IE 6 и 7 будут стилизовать только встроенные элементы, у которых запущен hasLayout, я имею в виду, что вы увидите встроенный блок поведение , если вы сделаете это:
<!--[if lte IE 7]>
.figure {
display: inline;
zoom: 1; /* triggering hasLayout */
}
<![endif]-->
- Firefox 2 не понимает
display: inline-block;
, поэтому вам придется предшествовать последнему другой командой отображения:
.figure {
display: -moz-inline-stack;
display: inline-block;
}
- теперь Firefox 2 будет вас немного раздражать. Во-первых, у вас должен быть только один дочерний элемент в вашем элементе
.figure
, иначе дочерние элементы ... будут складываться Так что если у вас есть легенда под вашим изображением, вставьте div между div.figure и img + p
<div>
<img src="littlepony.jpg" alt="Photo of my cute little pony" width="13" height="37" />
<p>Second child of .figure>div and not .figure</div>
</div>
</div>
Во-вторых (все еще только в Fx2), вы будете время от времени замечать, что вы больше не можете ни выделять текст внутри элемента -moz-inline-stack'ed, ни щелкать ссылки, которые он может содержать. Исправление заключается в том, чтобы позиционировать добавленный div относительно:
.figure div {
position: relative;
}
Конечно, условный комментарий для IE6 / 7 должен появляться после обычного CSS, иначе это будет мало чем помочь.
И, наконец, если у вас нет элегантного решения, используйте СТОЛ. Простая таблица только с тд и без го. Если это произойдет, то:
- IE6 и 7 не нравятся
display: table-sth
- ваша CMS вызывает проблемы с тем, что в противном случае нормально работало бы на другом сайте
- Поддержка Firefox 3 для
inline-block
не помогает
чем да, для всех лучше, если вы используете таблицу, и никакое половинное решение не создает проблем для половины ваших пользователей;)