简体   繁体   English

CSS文本框干扰CSS菜单

[英]Css textbox interferes with css menu

My html/css code interferes with my HTML/CSS drop down menu 我的html / css代码干扰了我的HTML / CSS下拉菜单

I have one textbox positioned above my navigation bar but the css code inter fears with my css dropdown. 我在导航栏上方放置了一个文本框,但CSS代码使我担心CSS下拉菜单。

JSFIDDLE 的jsfiddle

HTML HTML

<title>Mingamez.com</title>
<link rel="shortcut icon" href="images/favicon.png"> 
<link rel="stylesheet" type="text/css" href="css/main.css"/>
</head>
<div id='cssmenu'>
<ul>
<li class='active'><a href='index.html'><span><img style="height: 35px;width:75;" src="images/logo_image.png" alt="website logo"/></span></a></li>
<li class='has-sub'><a href='#'><span><img src="images/menu_image.png" alt="Menu"/>  </span></a>
  <ul>
     <li class='has-sub'><a href='#'><span>Product 1</span></a>
        <ul>
           <li><a href='#'><span>Sub Item</span></a></li>
           <li class='last'><a href='#'><span>Sub Item</span></a></li>
        </ul>
     </li>
     <li class='has-sub'><a href='#'><span>Product 2</span></a>
        <ul>
           <li><a href='#'><span>Sub Item</span></a></li>
           <li class='last'><a href='#'><span>Sub Item</span></a></li>
        </ul>
     </li>
  </ul>
</div>
<form method="get" action="search" id="advsearch">
<input name="q" type="text" size="40" placeholder="Search..." />
 </form>
</html>

CSS CSS

/** Body */
body{
background-color:#9FBAC4;
}
/** Advanced css menu */
#cssmenu ul { margin: 0; padding: 0; z-index:-1;}
#cssmenu li { margin: 0; padding: 0; z-index:-1;}
#cssmenu a { margin: 0; padding: 0; z-index:-1;}
#cssmenu ul {list-style: none; z-index:-1;}
#cssmenu a {text-decoration: none; z-index:-1;}
#cssmenu { height: 62px; background-color: rgb(35,35,35); box-shadow: 0px 2px 3px rgba(0,0,0,.4);}
#cssmenu { position: fixed; left: 0; top: 0; width: 100%; z-index:-1;}
#cssmenu > ul > li {
   float: left;
   margin-right: 35px;
   margin-left: 35px;
   position: relative;
  }
#cssmenu > ul > li > a {
   color: rgb(160,160,160);
   font-family: Verdana, 'Lucida Grande';
   font-size: 15px;
   line-height: 70px;
   padding: 15px 20px;
-webkit-transition: color .15s;
  -moz-transition: color .15s;
    -o-transition: color .15s;
       transition: color .15s;
}
 #cssmenu > ul > li > a:hover {color: rgb(250,250,250); }
 #cssmenu > ul > li > ul {
   opacity: 0;
   visibility: hidden;
   padding: 16px 0 20px 0;
   background-color: rgb(250,250,250);
   text-align: left;
   position: absolute;
   top: 55px;
   left: 50%;
   margin-left: -90px;
   width: 180px;
-webkit-transition: all .3s .1s;
  -moz-transition: all .3s .1s;
    -o-transition: all .3s .1s;
        transition: all .3s .1s;
-webkit-border-radius: 5px;
  -moz-border-radius: 5px;
       border-radius: 5px;
-webkit-box-shadow: 0px 1px 3px rgba(0,0,0,.4);
  -moz-box-shadow: 0px 1px 3px rgba(0,0,0,.4);
       box-shadow: 0px 1px 3px rgba(0,0,0,.4);
 }

 #cssmenu > ul > li:hover > ul {
   opacity: 1;
   top: 68px;
   visibility: visible;
 }
 #cssmenu > ul > li > ul:before{
   content: '';
   display: block;
   border-color: transparent transparent rgb(250,250,250) transparent;
   border-style: solid;
   border-width: 10px;
   position: absolute;
   top: -20px;
   left: 50%;
    margin-left: -10px;
}
#cssmenu > ul ul > li { position: relative;}
#cssmenu ul ul a{
   color: rgb(50,50,50);
   font-family: Verdana, 'Lucida Grande';
   font-size: 13px;
   background-color: rgb(250,250,250);
   padding: 5px 8px 7px 16px;
   display: block;
 -webkit-transition: background-color .1s;
  -moz-transition: background-color .1s;
    -o-transition: background-color .1s;
       transition: background-color .1s;
}
 #cssmenu ul ul a:hover {background-color: rgb(240,240,240);}
 #cssmenu ul ul ul {
   visibility: hidden;
   opacity: 0;
   position: absolute;
   top: -14px;
   right: 206px;
   padding: 16px 0 20px 0;
   background-color: rgb(250,250,250);
   text-align: left;
   width: 160px;
-webkit-transition: all .83s;
  -moz-transition: all .83s;
    -o-transition: all .83s;
       transition: all .83s;
-webkit-border-radius: 5px;
  -moz-border-radius: 5px;
    border-radius: 5px;
-webkit-box-shadow: 0px 1px 3px rgba(0,0,0,.4);
  -moz-box-shadow: 0px 1px 3px rgba(0,0,0,.4);
       box-shadow: 0px 1px 3px rgba(0,0,0,.4);
}
#cssmenu ul ul > li:hover > ul { opacity: 1; left: -170px; visibility: visible;}
#cssmenu ul ul a:hover{
   background-color: rgb(0,133,143);
   color: rgb(240,240,240);
}
/** Advanced Css Search Box */
#advsearch {
text-align: center;
margin-top: 0px;
}
#advsearch input[type="text"] {
background: url(images/search-dark.png) no-repeat 10px 6px #fcfcfc;
border: 1px solid #d1d1d1;
font: bold 12px Arial,Helvetica,Sans-serif;
color: #bebebe;
width: 150px;
padding: 6px 15px 6px 35px;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
text-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) inset;
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) inset;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) inset;
-webkit-transition: all 0.7s ease 0s;
-moz-transition: all 0.7s ease 0s;
-o-transition: all 0.7s ease 0s;
transition: all 0.7s ease 0s;
}
#advsearch input[type="text"]:focus {
width: 200px;
}

It looks like you're having a layering issue - the box around the input field actually extends the whole screen width and is in front of the menu so you can't "get to" the menu. 看来您遇到了分层问题-输入字段周围的框实际上扩展了整个屏幕的宽度,并且位于菜单的前面,因此您无法“进入”菜单。

Easy fix, just set a width on #advsearch and give it a higher z-index . 易于修复,只需在#advsearch上设置宽度并#advsearch设置更高的z-index Like this: 像这样:

#advsearch {
    text-align: center;
    margin: 20px auto 0px;
    width:250px;
    position:relative;
    z-index:100;
}

I also added a z-index higher than -1 to #cssmenu (I used z-index:50; ) because -1 makes the menu unusable on most browsers. 我还为#cssmenu添加了一个高于-1的z-index(我使用了z-index:50; ),因为-1使菜单无法在大多数浏览器上使用。

Working example: http://jsfiddle.net/daCrosby/K6fey/3/ 工作示例: http : //jsfiddle.net/daCrosby/K6fey/3/

first of all close your html tags properly. 首先,正确关闭html标记。

you have missed the li and ul closing tags. 您错过了li和ul结束标签。

</li>
</ul>

close this before tags 在标签之前关闭它

change the below css: (add padding-top:20px; ) 更改以下CSS :(添加padding-top:20px;)

#cssmenu {  position:fixed; left: 0; 
  padding-top:25px; 
  top: 0; width: 100%; z-index:-1;
}

Have updated your jsfiddle. 更新了您的jsfiddle。 See Updated JSFiddle 请参阅更新的JSFiddle

Code change. 代码更改。 Added margin-left: 50px; margin-left: 50px;增加margin-left: 50px; to #advsearch 前往#advsearch

#advsearch {
    text-align: right;
    margin-left: 50px;
    margin-top: 20px;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM