I want to create a menu that looks like:
HOME | FOO | BAR | ABOUT | CONTACT
How might I go about doing this?
Here is what I have tried:
<lift:Menu.builder ul:class="menu" li_item:class="current" />
and
ul.menu li {
display: inline;
list-style-type: none;
text-transform: uppercase;
border-right: 1px solid white;
padding-right: 5px;
}
li.current span {
background: white;
color: black;
padding: 5px 5px 3px 5px;
font-size: 11px;
}
li.current a, a:visited, a:link {
color: white;
padding: 5px 5px 3px 5px;
font-size: 11px;
}
This gets close, but it doesn't look quite right. Also you end up with an extra line at the end. I want the lines to be the same height as the text.
http://lh5.ggpht.com/_5DxlOp9F12k/S2aFQHfupzI/AAAAAAAAJiY/Ds0IpEyu78I/s800/menu.png
There might be a cleaner way to do this. Once you've declared the urls in your sitemap, you can pretty much use them as regular links in your template. You would write them as pure html.
In Boot.scala:
val menus = List(
Menu(Loc("home", List("index"), "Home")),
Menu(Loc("foo", List("foo"), "Foo")),
Menu(Loc("bar", List("bar"), "Bar")),
Menu(Loc("about", List("about"), "About")),
Menu(Loc("contact", List("contact"), "Contact"))
)
LiftRules.setSiteMap(SiteMap(menus: _*))
In your template, e.g. index.html:
<div id="menu">
<a href="/index">Home</a> |
<a href="/foo">Foo</a> |
<a href="/bar">Bar</a> |
<a href="/about">About</a> |
<a href="/contact">Contact</a>
</div>
Or as said Debilski, you can also call each menu item by their name. It would be more Lift-iesc.
<div id="menu">
<lift:Menu.item name="home"/>
<lift:Menu.item name="foo"/>
<lift:Menu.item name="bar"/>
<lift:Menu.item name="about"/>
<lift:Menu.item name="contact"/>
</div>
You can then add any style you want in an external stylesheet file or inside the page.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With