Я пытаюсь создать пейджер, который будет сидеть в центре div. В основном код выглядит так:
<div class="cms-pager">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
Если я укажу CSS следующим образом:
.cms-pager { }
.cms-pager ul { background-color: somecolor; margin: 0 auto; }
.cms-pager ul li { padding: 5px; margin: 3px; }
тогда UL не будет центрироваться, так как имеет ширину / цвет фона по всему div. Я просто не буду работать.
Если я укажу CSS следующим образом:
.cms-pager { }
.cms-pager ul { width: 200px; background-color: somecolor; margin: 0 auto; }
.cms-pager ul li { padding: 5px; margin: 3px; }
тогда UL центрируется на странице. Проблема в том, что мне пришлось указать фиксированную ширину: 200px; и если у меня есть только 1 или 2 ссылки, он находится точно в центре. Так что это мне не подходит, мне нужно, чтобы UL действительно имел ширину фактических тегов LI и точно определенную по ширине.
Если я укажу CSS следующим образом:
.cms-pager { margin: 0 auto; }
.cms-pager ul { float: left; background-color: somecolor; margin: 0 auto; }
.cms-pager ul li { padding: 5px; margin: 3px; }
тогда UL фон серый только при LI 1 - 3. Так что я знаю, что размер в порядке. Но поскольку мне пришлось использовать стиль float: left, он автоматически выравнивается по левому краю и игнорирует поле div: 0 auto style;
Если я укажу CSS следующим образом:
.cms-pager { margin: 0 auto; text-align: center }
.cms-pager ul {background-color: somecolor; margin: 0 auto; display: inline-block; }
.cms-pager ul li { padding: 5px; margin: 3px; }
эта версия работает для Firefox, Chrome, но не для IE6 / 7, так как она некорректно работает со встроенным блоком;
Есть ли решение этой проблемы? Является ли единственным решением использовать разные теги, такие как таблица tr td, или можно что-то сделать с этим?