Тянущееся меню на CSS (ul li) c выравниванием по ширине
Задача - меню, с произвольным набором пунктов, сделанное в виде списка (UL, LI) отобразить в одну строчку во всю ширину.
Пример1:
И стили. Выделены строки, которые дают такой эффект. Остальные чисто для украшения
Пример 1:
Пример 2:
Различие в одной строке! Теперь, что происходит по порядку.
Общее:
display:table; - переводит элемент ul в режим таблицы
width:100%; - растягивает ul на всю ширину
display:table-cell; - говорит что li это ячейка таблицы
Отличие:
table-layout:fixed; - определяет, что ячейки таблицы должны быть одной ширины. В примере2 нет этого параметра, и ширина подбирается исходя из объема текста внутри ячейки.
И главное - если у вас уже есть красивая менюшка на ul li, и вам ее надо растянуть - этот способ легко подойдет - надо только немного поправить стили.
Пример2:
Различия видны невооруженным глазом. Разбор кода внутри.
Итак, код самого меню примеров:
1 2 3 4 5 6 |
<ul id="menu"> <li><a href="#">Главная</a></li> <li><a href="#">Галерея фотографий</a></li> <li><a href="#">Каталог</a></li> <li><a href="#">О нас</a></li> </ul> |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#menu { display:table; width:100%; table-layout:fixed; border-collapse:collapse; } #menu li { display:table-cell; background:#eee; padding:.5em; text-align:center; border:1px solid silver; } |
1 2 3 4 5 6 7 8 9 10 11 12 |
#menu { display:table; width:100%; border-collapse:collapse; } #menu li { display:table-cell; background:#eee; padding:.5em; text-align:center; border:1px solid silver; } |
а как лечить для IE7 и мобильных браузеров? убогий способ
Кросбраузерность и мобильность в этом способе не учтена, данный способ представлен как одно из решений, если у вас есть способ лучше, будем благодарны если вы его опубликуете у нас.Спасибо.
Спасибо, изящное решение.
К сожалению в данном методе крайняя правая граница не видна, обрезается последний пиксель в ширине таблицы. А если эту конструкцию использовать не ограничивая в ширину, то появляется горизонтальный скроллинг.
Люди добрые!
Как сделать оглавление (меню) сайта при помощи списков?
Как сделать его „резиновым“?