【问题标题】:drop down menu won't go horizontal下拉菜单不会水平
【发布时间】:2013-09-02 22:36:20
【问题描述】:

我正在用 HTML 和 CSS 制作我的第一个网站,一切都很好,但现在我很难过。我使用 CSS 中的内联命令在标题下制作了一个非常典型的水平菜单。然后我决定我想要在我的菜单上的下拉元素,所以删除了我所有的菜单 css 并从在线水平下拉菜单的教程中复制了一些新的。下拉菜单完美运行,但现在,出于某种原因,我的菜单是垂直的!有什么想法可以让它再次水平吗?希望它应该相对容易!非常感谢。

这是我的 html(在我的 .html 表单中)

<div class="header">

<div class="topimagebox">
<img src="images/header1.jpg" class="topimage"; alt="Nets drying at Folkestone harbour";>
</div> <!--topimagebox-->

  <ul id="Menu">
    <li ><a href="index.html">Home</a></li>
    <li ><a href="About.html">About</a>
                                <ul>
                                <li ><a href="Context.html">Context</a></li>
                                <li ><a href="About.html">The Project</a></li>
                                <li ><a href="People.html">People</a></li>
                                </ul>   
                          </li>  
    <li ><a href="News.html">News</a></li>
    <li  ><a href="Publications.html">Publications</a></li>
    <li  ><a href="CaseStudies.html">Case Studies</a></li>
    <li  ><a href="Contactus.html">Contact</a>
                                <ul>
                                <li ><a href="Contactus.html">Contact</a></li>
                                <li ><a href="Getinvolved.html">Get Involved</a></li>
                                </ul>
                           </li>
    <li class="menu" ><a href="Impact.html">Impact</a></li>
    <li class="menu"><a href="Links.html">Links</a></li>
  </ul>


</div> <!--header-->

这是我的 CSS(在单独的样式表中)

div.header {
  background-color: white;
  width: 1000px;
  margin-bottom: 10px;
}
ul {
  padding: 0px;
  padding-top: 20px;
  padding-bottom: 20px;
  margin: 0px;
}


li {
  width: 850px;
  margin:0px auto 0px auto;
}

#Menu {
    margin: 0;
    padding: 0;
    height: 1em; }

#Menu li {
    list-style: none;
    float: left; }

#Menu li a {
    display: block;
    padding: 3px 8px;
    background-color: #5e8ce9;
    color: #fff;
    text-decoration: none; }

#Menu li ul {
    display: none; 
    width: 10em; /* Width to help Opera out */
    background-color: #69f;}

#Menu li:hover ul {
    display: block;
    position: absolute;
    margin: 0;
    padding: 0; }

#Menu li:hover li {
    float: none; }

#Menu li:hover li a {
    background-color: #69f;
    border-bottom: 1px solid #fff;
    color: #000; }

#Menu li li a:hover {
    background-color: #8db3ff; }

我输入了我的通用 ul 和 li 以防万一与它有关。如果有人能提供帮助,我将不胜感激。

【问题讨论】:

    标签: html css drop-down-menu


    【解决方案1】:
    li {
      width: 850px; //<-- This is your problem.
      margin:0px auto 0px auto; 
    }
    

    如果你移除 li 元素将彼此相邻浮动的宽度,直到没有足够的空间让它浮动,然后它会分到一个新行。

    【讨论】:

    • Razz,你的老板!非常感谢。
    • 这是一个 jsfiddle,展示了 Razz 的建议。 jsfiddle.net/gkRM7 同样,您可以通过将 li 元素的宽度设置为 12.5% 来定义 li 元素,例如 8 * 12.5% = 100%,这样您的菜单将正确且完全地适应窗口大小。 #Menu li { 列表样式:无;向左飘浮;宽度:12.5%; }
    • 非常感谢大家。愚蠢的问题,但是如果我想在您将鼠标悬停在链接上时更改颜色,我应该在上面的 CSS 中的哪个位置插入它?现在我进口而不是从头开始,我有点迷失了方向。非常感谢您的帮助!
    • 您已经在链接上有一个 :hover-selector,但可能它在您的结构中太低了。尝试将最后一个选择器更改为 #Menu li a:hover{...} 以获取所有 a 链接,而不仅仅是两个 li:s 下方的链接
    • 哦,你们,效果很好!宽度的事情让我进入了另一行——我想是因为我测试转换为大写,将我的字体粗体转换为粗体并添加了 0.2em 的字母间距。不过,我可能会把所有这些都去掉,因为间隔更好。
    猜你喜欢
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 2013-09-20
    • 1970-01-01
    • 2013-05-25
    • 2017-09-09
    • 2012-04-04
    相关资源
    最近更新 更多