Горизонтальное меню с двухстрочными элементами
Прислано: yaguarchik
вт, 01/05/2007 - 15:29
Подскажите пожалуйста, как реализовать через CSS горизонтальное меню (primary links) с двухстрочными элементами наподобие этого:

- yaguarchik's blog
- Для комментирования войдите или зарегистрируйтесь
А если тупо в название пункта меню тег <br> вставить?
- Для комментирования войдите или зарегистрируйтесь
Неа. Не получается. Появится просто вот такая надпись "Фирменный<br>стиль"
- Для комментирования войдите или зарегистрируйтесь
Видимо тогда все же придется перегрузить theme_menu_item()...
- Для комментирования войдите или зарегистрируйтесь
Или так:
display: block; width: 150px; text-align: center;
Или так: http://dorward.me.uk/www/centre/
Ну или совсем вот так: http://www.google.ru/search?source=ig&hl=ru&q=text+align+center+%D1%87%D...
- Для комментирования войдите или зарегистрируйтесь
По хорошему, это надо бы организовать с помощью
Display: inline-block; width: 60px;
Но Firefox не поддерживает, аргумент "inline-block". Кто-нибудь знает, как обойти это ограничение?
UPD: Для Firefox надо писать:
Display: -moz-inline-box; Display: inline-block; width: 60px;
Но это почему то в моем случае не работает.
- Для комментирования войдите или зарегистрируйтесь
Нарисуйте кнопки, инече нет гарантии что у вас не получится трёхстрочных элементов
- Для комментирования войдите или зарегистрируйтесь
Вставьте следующее в template.php и можно будет использовать тег br в пункте меню. (И незабудте очистить кэш)
Проверено на Drupal 7 работает, для шестой версии скорее всего не будет работать.
/** * Override theme_menu_link() to add line breaks in menu items * that have a <br> or <br/> or <br /> placed in them. */ function YOURTHEME_menu_link(array $variables) { $element = $variables['element']; $sub_menu = ''; if ($element['#below']) { $sub_menu = drupal_render($element['#below']); } $output = l($element['#title'], $element['#href'], $element['#localized_options']); // Replace text line breaks with html line breaks. $output = str_replace("<br>", "<br/>", $output); $output = str_replace("<br/>", "<br/>", $output); $output = str_replace("<br />", "<br/>", $output); return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n"; }
- Для комментирования войдите или зарегистрируйтесь




Комментарии