CSS垂直菜单,下面有说明

时间:2013-06-26 03:07:33

标签: css menu html

我正在尝试创建一个看起来像这样的垂直菜单(将多维数据集视为图标的占位符):

http://i.stack.imgur.com/dWWzR.png

我无法将说明放在正文下面,当然是<a>。以下是我到目前为止在HTML代码中的内容:

<div id="actions">
  <ul>
    <li><a href="#">Element 1</a><span class="desc">Description</span></li>
    <li><a href="#">Element 2</a><span class="desc">Description</span></li>
  </ul>
</div>

CSS看起来像这样:

#actions {
    width: 200px;
    height: 60px;
    padding: 10px 25px 10px 25px;
}

#actions ul {
    list-style-type: none;
}

#actions ul li {
    list-style-type: none;
    display: block;
    margin-top: 10px;
    border: 2px solid;
    height: 60px;
    background-color: #64ADD0;
}

#actions a {
    display: inline-block;
    padding-left: 5px;
    padding-right: 5px;
    text-decoration: none;
    font-weight: bold;
    line-height: 40px;
}

#actions a:hover {
    color: #3CA0D0;
}

#actions .desc {
    display: inline-block;
    line-height: 20px;
}

但是,结果是说明显示在链接的右侧,此外,<span>不是链接的一部分,因此它显示为普通标签。我怎样才能解决这个问题?我是CSS和网页设计的新手,所以请原谅我这是一个愚蠢的问题。 :)

谢谢!

3 个答案:

答案 0 :(得分:1)

只需移除inline中的inline-block;即可使锚占据整行并将其后的任何内容推送到下一行。

#actions a {
    display: block;
    padding-left: 5px;
    padding-right: 5px;
    text-decoration: none;
    font-weight: bold;
    line-height: 40px;
}

http://jsfiddle.net/LmbLR/

答案 1 :(得分:1)

只需添加以下CSS规则

即可
#actions > ul > li > a {
   display: block;
}

这是DEMO

答案 2 :(得分:0)

我倾向于使用float:left和clear:两者都是为了确切知道对象的位置:http://jsfiddle.net/MAt8Y/

#actions .desc {

    line-height: 20px;
    float:left;
    clear:both;
    padding-left: 5px;
    padding-right: 5px;
}

#actions a {
    display: inline-block;
    padding-left: 5px;
    padding-right: 5px;
    text-decoration: none;
    font-weight: bold;
    line-height: 40px;
    float:left;
}