0

我有一个 CSS 菜单,除了在 IE 7>10 中运行良好之外,列表没有正确显示。联系人和历史标题应该在其他 3 个标题下,并且由于某种原因,操作和历史标题在右侧。我尝试了浮动和清除的各种组合,但似乎没有任何效果。如果我调整边距值,它会在底部创建一个大的空白区域,这是不正确的。我已经包含了来自 FF 的屏幕截图,这是正确的。如果有人能告诉我我的错误,我将不胜感激。谢谢

屏幕: IE_menu_incorrect FF_menu_correct

html代码

<ul id="menu"><li>

<div class="dropdown_3columns">
 <div class="col_3">
  <h2>
   Client Control Panel
  </h2>
 </div>
 <div class="col_1">
  <h3>
   Tickets
  </h3>
  <ul>
   <li>
    <a href="#">Inbox</a> 
   </li>
   <li>
    <a href="#">Sent Tickets</a> 
   </li>
   <li>
    <a href="#">Received Tickets</a> 
   </li>
   <li>
    <a href="#">Compose Ticket</a> 
   </li>
  </ul>
 </div>
 <div class="col_1">
  <h3>
   Messages
  </h3>
  <ul>
   <li>
    <a href="#">Broadcast Message</a> 
   </li>
   <li>
    <a href="#">Archived messages</a> 
   </li>
  </ul>
 </div>
 <div class="col_1">
  <h3>
   Actions
  </h3>
  <ul>
   <li>
    <a href="#">Actions</a> 
   </li>
   <li>
    <a href="#">View actions</a> 
   </li>
  </ul>
 </div>
 <div class="listSpacer"> --> **this is the area**
  <div class="col_1">
   <h3>
    History
   </h3>
   <ul>
    <li>
     <a href="#">User Log</a> 
    </li>
    <li>
     <a href="#">Actions Log</a> 
    </li>
   </ul>
  </div>
  <div class="col_1">
   <h3>
    Contacts
   </h3>
   <ul>
    <li>
     <a href="#">View Contacts</a> 
    </li>
    <li>
     <a href="#">Edit Contacts</a> 
    </li>
   </ul>
  </div>
 </div>
</div>

</li></ul>

CSS代码

#menu {

 position:relative;
    list-style:none;
    width:96.9%;
    margin:20px auto 0px auto;
    height:43px;
    padding:0px 20px 0px 20px;
 color: black;


    /* Background color and gradients */

    background: #e0e1e1;
    background: -moz-linear-gradient(top, #d6d6d6, #aeaeae);
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#d7d7d7), to(#013953));

    /* Borders */

    border: 1px solid #000000;


}

#menu li {
    float:left;
    display:block;
    text-align:center;
    position:relative;
    padding: 4px 10px 4px 10px;
    margin-right:30px;
    margin-top:7px;
    border:none;
z-index:5;
}

#menu li:hover {
    border: 1px solid #777777;
    padding: 4px 9px 4px 9px;

    /* Background color and gradients */

    background: #F4F4F4;
    background: -moz-linear-gradient(top, #F4F4F4, #EEEEEE);
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#F4F4F4), to(#EEEEEE));

    /* Rounded corners */

    -moz-border-radius: 5px 5px 0px 0px;
    -webkit-border-radius: 5px 5px 0px 0px;
    border-radius: 5px 5px 0px 0px;
}

#menu li a {
    font-family:Arial, Helvetica, sans-serif;
    font-size:12px; 
    color: #000;
    display:block;
    outline:0;
    text-decoration:none;

    /* text-shadow: 1px 1px 1px #000; */
}

#menu li:hover a {
    color:#161616;
    text-shadow: 1px 1px 1px #ffffff;
}
#menu li .drop {
    padding-right:21px;
    background:url("../img/drop.png") no-repeat right 8px;
}
#menu li:hover .drop {
    background:url("../img/drop.png") no.-repeat right 7px;
}

.dropdown_1column, 
.dropdown_2columns, 
.dropdown_3columns, 
.dropdown_4columns,
.dropdown_5columns {
    margin:4px auto;
    float:left;
    position:absolute;
    left:-999em; /* Hides the drop down */
    text-align:left;
    padding:10px 5px 10px 5px;
    border:1px solid #777777;
    border-top:none;

    /* Gradient background */
    background:#F4F4F4;
    background: -moz-linear-gradient(top, #EEEEEE, #BBBBBB);
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#EEEEEE), to(#BBBBBB));

    /* Rounded Corners */
    -moz-border-radius: 0px 5px 5px 5px;
    -webkit-border-radius: 0px 5px 5px 5px;
    border-radius: 0px 5px 5px 5px;
}

.dropdown_1column {width: 140px;}
.dropdown_2columns {width: 280px;}
.dropdown_3columns {width: 420px;}
.dropdown_4columns {width: 560px;}
.dropdown_5columns {width: 700px;}

#menu li:hover .dropdown_1column, 
#menu li:hover .dropdown_2columns, 
#menu li:hover .dropdown_3columns,
#menu li:hover .dropdown_4columns,
#menu li:hover .dropdown_5columns {
    left:-1px;
    top:auto;
}

.col_1,
.col_2,
.col_3,
.col_4,
.col_5 {
    display:inline;
    float: left;
    position: relative;
    margin-left: 5px;
    margin-right: 5px;
}
.col_1 {width:130px;}
.col_2 {width:270px;}
.col_3 {width:410px;}
.col_4 {width:550px;}
.col_5 {width:690px;}

#menu .menu_right {
    float:right;
    margin-right:20px;
}

#menu li .align_right {
    /* Rounded Corners */
    -moz-border-radius: 5px 0px 5px 5px;
    -webkit-border-radius: 5px 0px 5px 5px;
    border-radius: 5px 0px 5px 5px;
}

#menu li:hover .align_right {
    left:auto;
    right:-1px;
    top:auto;
}

#menu p, #menu h2, #menu h3, #menu ul li {
    font-family:Arial, Helvetica, sans-serif;
    line-height:21px;
    font-size:12px;
    text-align:left;
    text-shadow: 1px 1px 1px #FFFFFF;
}
#menu h2 {
    font-size:17px;
    font-weight:400;
    letter-spacing:-1px;
    margin:7px 0 14px 0;
    padding-bottom:14px;
    border-bottom:1px solid #666666;
}
#menu h3 {
    font-size:12px;
    margin:7px 0 14px 0;
    padding-bottom:7px;
    border-bottom:1px solid #888888;
}
#menu p {
    line-height:18px;
    margin:0 0 10px 0;
}

#menu li:hover div a {
    font-size:12px;
    color:#015b86;
}
#menu li:hover div a:hover {
    color:#ff6600;
}


.strong {
    font-weight:bold;
}
.italic {
    font-style:italic;
}

.imgshadow { /* Better style on light background */
    background:#FFFFFF;
    padding:4px;
    border:1px solid #777777;
    margin-top:5px;
    -moz-box-shadow:0px 0px 5px #666666;
    -webkit-box-shadow:0px 0px 5px #666666;
    box-shadow:0px 0px 5px #666666;
}
.img_left { /* Image sticks to the left */
    width:auto;
    float:left;
    margin:5px 15px 5px 5px;
}

.imgnews_left { /* Image news sticks to the left */
    width:auto;
    float:left;
    margin:0px 15px 5px 5px;
}

#menu li .black_box {
    background-color:#333333;
    color: #eeeeee;
    text-shadow: 1px 1px 1px #000;
    padding:4px 6px 4px 6px;

    /* Rounded Corners */
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;

    /* Shadow */
    -webkit-box-shadow:inset 0 0 3px #000000;
    -moz-box-shadow:inset 0 0 3px #000000;
    box-shadow:inset 0 0 3px #000000;
}

#menu li ul {
    list-style:none;
    padding:0;
    margin:0 0 12px 0;
}
#menu li ul li {
    font-size:12px;
    line-height:24px;
    position:relative;
    text-shadow: 1px 1px 1px #ffffff;
    padding:0;
    margin:0;
    float:none;
    text-align:left;
    width:130px;
}
#menu li ul li:hover {
    background:none;
    border:none;
    padding:0;
    margin:0;
}

#menu li .greybox li {
    background:#ffffff;
    border:1px solid #bbbbbb;
    margin:0px 0px 4px 0px;
    padding:4px 6px 4px 6px;
    width:116px;

    /* Rounded Corners */
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    -khtml-border-radius: 5px;
    border-radius: 5px;
}
#menu li .greybox li:hover {
    background:#F4F4F4;
    border:1px solid #aaaaaa;
    padding:4px 6px 4px 6px;
    margin:0px 0px 4px 0px;
}

.date {

 font-size: 12px;
 color: grey;

}

#menu li:hover a[title] {

 margin-left: 40px;
 margin-top: 8px;
 font-size: 18px;
 font-family: Verdana, Geneva, sans-serif;
 /* border-bottom:1px solid #777777; */
}

.newsSpace {

 margin-left: 45px;
 margin-right: 5px;
 margin-bottom: 10px;
 margin-top: 10px;
 font-size: 12px;
 font-family: Verdana, Geneva, sans-serif;
 /* border-bottom:1px solid #777777; */
}

.newsPostedDate {

 float:right;
 margin-right: 10px;
 color: orange;
 font-size: 11px;

}

.welcomeName {

 font-family: Arial, Helvetica, sans-serif;
 font-size: 12px;
 color: orange;

}

.listSpacer{

        margin-top:20px;

}
4

3 回答 3

1

我用以下内容替换了您的 listSpacer div,效果很好:

<br style="clear:both" />

这是在 jsFiddle 上:http: //jsfiddle.net/r89wY/1/

请注意,很难找到合适的悬停点。您是否删除了根菜单文本?

于 2013-06-21T16:44:31.367 回答
1

在两个区域之间放置一个带有 clear:both 样式的 div 元素,就在之前 <div class="listSpacer">

于 2013-06-21T16:45:36.333 回答
1

经典的 clearfix 问题

menu li {
  overflow:hidden; /* add this */
}

或试用 Micro Clear Fix: http: //nicolasgallagher.com/micro-clearfix-hack/

于 2013-06-21T16:46:49.327 回答