我的水平菜单出现非常奇怪的 CSS 问题

Very weird CSS issue on my horizontal menu

我的 prestashop 网站在顶部菜单块上有一个非常奇怪的响应问题。你能帮我解决一下吗?

仅在媒体宽度为 600px 时发生,问题是菜单子类别会自动下拉。不知道为什么也不知道怎么解决...

这是代码

/*** ESSENTIAL STYLES ***/
.sf-contener {
clear: both;
}
.sf-right {
  margin-right: 14px;
  float: right;
  width: 7px;
}
.sf-menu, .sf-menu * {
margin: 0;
padding: 0px 0px 0px 0px;
list-style: none;
}
.sf-menu {
margin: 10px 0;
padding:0px 0px 0px 0px;
width:980px;/* 980 */
background: #383838;
/*  @media (max-width: 450px) {
    .sf-menu {
      display: none; }    */
}
.sf-menu ul {
position: absolute;
top: -999em;
width: 10em; /* left offset of submenus need to match (see below) */
}
.sf-menu ul li {
width: 100%;
}
.sf-menu li:hover {
visibility: inherit; /* fixes IE7 'sticky bug' */
}
.sf-menu li {
float: left;
position: relative;
top: 0;
/*border-right: 1px solid #777;*/
}
.sf-menu a {
display: block;
position: relative;
color:#fff;
}
.sf-menu li:hover ul,
.sf-menu li.sfHover ul {
left: 0;
/*padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;*/
top: 35px; /* match top ul list item height */
z-index: 99;
width:auto;
}
ul.sf-menu li:hover li ul,
ul.sf-menu li.sfHover li ul {
top: -999em;
}
ul.sf-menu li li:hover ul,
ul.sf-menu li li.sfHover ul {
left: 200px; /* match ul width */
top: 0;
}
ul.sf-menu li li:hover li ul,
ul.sf-menu li li.sfHover li ul {
left: 200px; /* match ul width */
top: 0;
}
ul.sf-menu li li li:hover ul,
ul.sf-menu li li li.sfHover ul {
left: 200px; /* match ul width */
top: 0;
}


/*** DEMO SKIN ***/
.cat-title {
display: none;
}
.sf-menu {
float: left;
margin-bottom: -2em;
width: 100%;
height: 75px;
background: url('http://www.aaas.com/themes/assa/img/cabecera.png') repeat left center; 

}
.sf-menu a {
  position: relative;
  top: 20px;
  display:block;
    margin-right:2px;
    padding: 0 22px 0 20px;
    line-height:35px;   
    border: 10;
    text-decoration:none; 
    text-transform: uppercase;
    font-family:Handlee;
    font-size: 18px;
    font-weight: bold;
}
.sf-menu a, .sf-menu a:visited  { /* visited pseudo selector so IE6 applies text colour*/
color: #916e6e;
white-space:nowrap;
}
.sf-menu li ul {
  border:1px solid #f1b6b1; box-shadow:2px 2px 4px rgba(0,0,0,0.25);
  width:500px;
  padding: 0;
  margin: 23px 0px 0px 0px;
  top:0;
  background: white;
}
.sf-menu li li {
background: white; 
  position: relative;
  top: 0;
  height:35px; 
  line-height:35px; 
  padding: 0;
  margin: 0px 0px 0px 0px;

}
.sf-menu li li a {
font-size: 16px;
text-transform: capitalize;
top:0;  
}
/*
ul.sf-menu li a {
  padding-right: 2.25em;
  min-width: 1px;
  padding-top: 20px;
  margin-top: -20px;
}
*/
.sf-menu li li li {
background: white;
width:140px;
}
.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
   font-weight: bold; 
   color: white;
   background: url('http://www.sasa.com/themes/sasa/img/boton-b.png') no-repeat center 0px; 
}
.sf-menu ul li:hover, .sf-menu ul li.sfHover,
.sf-menu ul li a:focus, .sf-menu ul li a:hover, .sf-menu ul li a:active {
background: #eecfd0; //#4e4e4e; 
outline: 0;
} 
/*** arrows **/
.sf-menu a.sf-with-ul {
padding-right:  2.25em;
min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */
padding-top: 20px;
margin-top: -20px;
}
.sf-sub-indicator {
position: absolute;
display: block;
right: 10px;
top: 1.05em; /* IE6 only */
width: 10px;
height: 35px;
text-indent:  -999em;
overflow: hidden;
background: url('../img/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
}
a > .sf-sub-indicator {  /* give all except IE6 the correct values */
top: 11px;
background-position: 0 -100px; /* use translucent arrow for modern browsers*/
}
/* apply hovers to modern browsers */
a:focus > .sf-sub-indicator,
a:hover > .sf-sub-indicator,
a:active > .sf-sub-indicator,
li:hover > a > .sf-sub-indicator,
li.sfHover > a > .sf-sub-indicator {
background-position: -10px -100px; /* arrow hovers for modern browsers*/
}


/* point right for anchors in subs */
.sf-menu ul .sf-sub-indicator { background-position:  -10px 0; }
.sf-menu ul a > .sf-sub-indicator { background-position:  0 0; }
/* apply hovers to modern browsers */
.sf-menu ul a:focus > .sf-sub-indicator,
.sf-menu ul a:hover > .sf-sub-indicator,
.sf-menu ul a:active > .sf-sub-indicator,
.sf-menu ul li:hover > a > .sf-sub-indicator,
.sf-menu ul li.sfHover > a > .sf-sub-indicator {
background-position: -10px 0; /* arrow hovers for modern browsers*/
}


/*** shadows for all but IE6 ***/
.sf-shadow ul {
background: url('../img/shadow.png') no-repeat bottom right;
padding: 0 8px 9px 0;
-moz-border-bottom-left-radius: 17px;
-moz-border-top-right-radius: 17px;
-webkit-border-top-right-radius: 17px;
-webkit-border-bottom-left-radius: 17px;
}
.sf-shadow ul.sf-shadow-off {
background: transparent;
}
li.sf-search {
  background: inherit;
  float: right;
  line-height: 25px;
  background:transparent;
}
li.sf-search input {
  -moz-border-radius: 0 5px 5px 0;
  padding: 5px 0;
  position: relative;
  top: 1px;
  padding-left: 30px;
  margin: 18px 6px 0 0;
  background: #fff url('../../../../img/search-zoom3.png') no-repeat left center;
  border:1px solid #777;
}


/* hack IE7 */
.sf-menu a, .sf-menu a:visited {height:34px !IE;}
.sf-menu li li {
width:200px;
background:#726f72 !IE;
}

#block_top_menu .category-thumbnail {
  display:none;
  clear: both;
  width: 100%;
  float: none; }
  #block_top_menu .category-thumbnail div {
    float: left;
    width: 33.33333%; }
    #block_top_menu .category-thumbnail div img {
      max-width: 100%; }
#block_top_menu li.category-thumbnail {
  padding-right: 0; }




/* Mobile Item */
.sf-menu-phone-item { display:none; }
#sf-menu-phone-trigger { display:none; position:absolute; top:7px; right:0; background:url('http://www.sasa.com/themes/sasas/img/icon-mobile-nav.png') top right no-repeat #29addd; width:50px; height:50px; text-indent:-9999px; border-radius:3px;
    -webkit-transition: all 0.5s ease 0s;
    -moz-transition: all 0.5s ease 0s;
    -o-transition: all 0.5s ease 0s;
    transition: all 0.5s ease 0s; }
#sf-menu-phone-trigger:hover { background-color:#333; }
#sf-menu-phone-trigger.active { background-position:bottom right; }

@media only screen and (max-width: 999px) {
    .sf-menu a, .sf-menu a:visited  {font-size:13px;}
}
/* Tablet Only Queries */
@media only screen and (min-width: 531px) and (max-width: 786px)  { 
    .sf-menu a, .sf-menu a:visited  {font-size:12px;}
}

/* Phone Only Queries */
@media only screen and (max-width: 530px) { 
    .sf-menu a{
        top:5px;
    }
    #sf-menu-header {height:auto; }
    #sf-menu-top-nav {margin-left:-2%; margin-right:-2%;}
    /*.sf-menu {display:none; } */
    .sf-menu {width:100%; height:auto; margin:10px 0 0 0; position:static !important}
    .sf-menu li {width:100%; background:#f4f4f4;  border-top:1px solid #fff !important; border-bottom:1px solid #999 !important; -webkit-border-radius:0; border-radius:0; }
    .sf-menu li:hover {background:#de8686;}
    .sf-menu li ul {width:100%; position:static !important; background:#ccc;}
    .sf-menu li li {width:100% !important; background:#ccc; }
    /*.sf-menu li li li {display:none !important;}*/
    .sf-menu-phone-item { display:block; }
    #sf-menu-phone-trigger { display:block; }
    .sf-search {padding:10px;} 
    #searchbox {margin-left:15px;}
    #searchbox input[type="text"] {width:80%;}
    #searchbox input[type="text"]:focus, #searchbox input[type="text"]:hover {width:80%;}
    #searchbox .button {width:10%;}
    #header_logo { padding-right:50px; text-align:left !important;}
}

非常感谢,非常感谢你的帮助

我快速浏览了一下网站。我怀疑 display:none 在那一点上消失了。所以,这是你的 css 的问题。它们现在对我来说太复杂了。一个建议是放置 display:none !important 这将覆盖其他规则。

当浏览器的宽度增加时,有一些 JavaScript 运行 某处添加 display: none as inline CSS 到元素。问题是这个脚本只在浏览器的宽度大于 600px 时才有效。要解决此问题,您必须将以下 css 应用于您的子菜单:

.sf-menu li ul {
    display: none;
}

.sf-menu li a:hover + ul {
    display: block !important;
}

在 javascript 中进行了一些修改,由于代码是 obfuscate/optimized,因此很难说出您必须更正哪些内容。 上面设置一个CSS规则就是一种橡皮补丁,首先要在源码中找到修改的位置。也许您可以在您的问题中附加此代码。

您的子菜单的生成方式也存在问题。 "novedades" 是 "Washi Tape" li

中的 ul 子元素
<ul class="sf-menu clearfix menu-content">
    <li><a href="/novedades" title="Novedades">Novedades</a></li>
    <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=washi-tape&amp;controller=category" title="Washi Tape">Washi Tape</a>
        <ul>
            <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=por-colores&amp;controller=category" title="Por colores">Por colores</a>
                <ul>
                    <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=amarillo&amp;controller=category" title="Amarillo">Amarillo</a></li>
                    <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=azul&amp;controller=category" title="Azul">Azul</a></li>
                    <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=gris&amp;controller=category" title="Gris">Gris</a></li>
                    <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=marron&amp;controller=category" title="Marrón">Marrón</a></li>
                    <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=naranja&amp;controller=category" title="Naranja">Naranja</a></li>
                    <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=negro&amp;controller=category" title="Negro">Negro</a></li>
                    <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=rojo&amp;controller=category" title="Rojo">Rojo</a></li>
                    <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=rosa&amp;controller=category" title="Rosa">Rosa</a></li>
                    <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=verde&amp;controller=category" title="Verde">Verde</a></li>
                    <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=violeta&amp;controller=category" title="Violeta">Violeta</a></li>
                </ul>
            </li>
            <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=lisos&amp;controller=category" title="Lisos">Lisos</a></li>
            <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=lineas&amp;controller=category" title="Líneas">Líneas</a></li>
            <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=topos&amp;controller=category" title="Topos">Topos</a></li>
            <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=estampados&amp;controller=category" title="Estampados">Estampados</a></li>
            <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=naturaleza&amp;controller=category" title="Naturaleza">Naturaleza</a></li>
            <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=infantil&amp;controller=category" title="Infantil">Infantil</a></li>
            <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=corazones&amp;controller=category" title="Corazones">Corazones</a></li>
            <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=estrellas&amp;controller=category" title="Estrellas">Estrellas</a></li>
            <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=con-mensaje&amp;controller=category" title="Con mensaje">Con mensaje</a></li>
            <li><a href="http://www.dulcewashitape.com/index.php?category_rewrite=purpurinaglitter&amp;controller=category" title="Purpurina/Glitter">Purpurina/Glitter</a></li>
            <li class="category-thumbnail"></li>
        </ul>
    </li>
    <li class="sf-search noBack" style="float:right">
        <form id="searchbox" action="http://www.dulcewashitape.com/index.php?controller=search" method="get">
            <p>
                <input type="hidden" name="controller" value="search" />
                <input type="hidden" value="position" name="orderby" />
                <input type="hidden" value="desc" name="orderway" />
                <input type="text" name="search_query" placeholder="Buscar" value="" />
            </p>
        </form>
    </li>
</ul>