html - 简单的 2 block 移动导航

标签 html css navigation

我正在尝试制作一个简单的导航,它将在移动设备上提供类似网格的布局。一行有两个 block ,将有 3 行。有 5 个链接,因此总数为奇数。由于数字是奇数,我试图让当前页面类占据整个宽度,而不是让两个链接连续。

像这样非常粗略的绘图: enter image description here

或者如果链接 3 是当前页面:

enter image description here

目前我有一个基本的 5 链接列表。这是 HTML:

            <nav id="primary_nav">
                <ul>
                    <li><a '. $this->getCurrentPage("contact") .' href="Contact">Contact</a></li>
                    <li><a '. $this->getCurrentPage("portfolio") .' href="Portfolio">Portfolio</a></li>
                    <li><a '. $this->getCurrentPage("resume") .' href="Resume">Resume</a></li>
                    <li><a '. $this->getCurrentPage("bio") .' href="Bio">Bio</a></li>
                    <li><a '. $this->getCurrentPage("index") .' href="Home">Home</a></li>
                </ul>

            </nav>

CSS:

#primary_nav ul {
    list-style: none;
    background: #1c1c1c;
    padding: 5px 0;
}

#primary_nav li a {
    display: block;
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    letter-spacing: 0.1em;
    line-height: 2em;
    height: 3em;
    border-bottom: 1px solid #383838;
}

#primary_nav li:last-child a {
    border-bottom: none;
}

#primary_nav li a:hover,
#primary_nav li a:focus {
    color: #1c1c1c;
    background: #ccc;
}

最佳答案

忘记 javascript,你可以单独使用 css(没有花哨的 css3)。

这是 Html...

<nav id="primary_nav">
  <ul>
      <li><a href="Contact">Contact</a></li>
      <li class="selected"><a href="Portfolio">Portfolio</a></li>
      <li><a href="Resume">Resume</a></li>
      <li><a href="Bio">Bio</a></li>
      <li><a href="Home">Home</a></li>
  </ul>
</nav>​

...这是 CSS...

#primary_nav {
    position: relative;
    text-align: center;
}

#primary_nav li {
    float: left;
    width: 50%;
}

#primary_nav li:nth-child(-n+3){
    margin-bottom: 40px; /*must match height set on "primary_nav a"*/
}

#primary_nav .selected {
    position: absolute;
    top: 40px; /*must match height set on "primary_nav a"*/
    width: 100%;
}

#primary_nav a {
    display: block;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    padding: 5px 10px 6px;
    border: 1px solid #aaa;
    height: 40px; 
}

您只需将 class="selected" 添加到引用当前所选页面的链接即可。

http://jsfiddle.net/joplomacedo/eYJG7/ 查看它的运行情况

关于html - 简单的 2 block 移动导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11404782/

相关文章:

javascript - 导航栏和轮播配件

Javascript : How to display a default tab content but hide other tab content

html - 三星笔记 - 默认浏览器(Internet)在输入中采用默认边框半径

iOS 7 Safari 无法滚动 DIV 溢出 : hidden or auto

html - 在背景图像的中心添加透明水平线

css - 如何在不使用 Javascript 的情况下获取 <ul> 弹出式 div 以覆盖其他 <li> 元素

html - 如何让这个缩略图幻灯片居中

Python BeautifulSoup 和请求网络抓取

css - 如何制作多个 DROP-shadow?

vba - 使用 VBA 在默认浏览器中打开一个 html 页面?