Reputation: 75
I'm building this site but having a small problem with the navigation bar. I currently have the width=100% of the navigation which works fine but when I resize the browser horizontally it shrinks the menu's (the menus are there but the background gets cut off). I want the width to be 100% initially and not resize at all with the browser shrinking or expanding. Can anyone help?
Site: http://bepas.azurewebsites.net/
Below is my CSS. Specific line: #cssmenu {height: 50px; width:100% ...
html,body {
margin:0;
padding:0;
height:100%;
}
#cssmenu ul { margin: 0; padding: 0; white-space:nowrap;}
#cssmenu li { margin: 0; padding: 0;}
#cssmenu a { margin: 0; padding: 0;}
#cssmenu ul {list-style: none;}
#cssmenu a {text-decoration: none;}
#cssmenu {height: 50px; width:100%;background-color: #708090; box-shadow: 0px 2px 3px rgba(0,0,0,.4); }
#cssmenu > ul > li {
display:inline-block;
margin-left: 65px;
position: relative;
}
#cssmenu > ul > li > a {
color: #FFFFFF;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 18px;
line-height: 50px;
padding: 0px;
-webkit-transition: color .15s;
-moz-transition: color .15s;
-o-transition: color .15s;
transition: color .15s;
}
#cssmenu > ul > li > a:hover {color: #000000; }
body.home li.home, body.tech li.tech {font-weight:bold; }
#cssmenu > ul > li > ul {
opacity: 0;
visibility: hidden;
padding: 0px 0 20px 0;
background-color: #FFFFFF;
text-align: left;
position: absolute;
top: 55px;
left: 50%;
margin-left: -80px;
width: 260px;
-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: 50px;
visibility: visible;
}
#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: #FFFFFF;
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: -16px;
left: 206px;
padding: 16px 0 20px 0;
background-color: rgb(250,250,250);
text-align: left;
width: 160px;
-webkit-transition: all .3s;
-moz-transition: all .3s;
-o-transition: all .3s;
transition: all .3s;
-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: 196px; visibility: visible;}
#cssmenu ul ul a:hover{
background-color: rgb(205,44,36);
color: rgb(240,240,240);
}
Here is my html snippet of how the menu is defined.
<div id="cssmenu">
<ul>
<li><a href="#">Sites</a>
<ul>
<li><a href="#">My Sites List</a></li>
<li><a href="#">Site General Info.</a></li>
<li><a href="#">Utility Billing (Electricity)</a></li>
<li><a href="#">Utility Billing (Gas)</a></li>
<li><a href="#">Utility Billing (Solar)</a></li>
<li><a href="#">Occupancy Info.</a></li>
<li><a href="#">Exterior Lighting</a></li>
</ul>
</li>
<li><a href="#">Buildings</a>
<ul>
<li><a href="#">General Info.</a></li>
<li><a href="#">Exterior Lighting</a></li>
<li><a href="#">Roof & Exhaust Fans</a></li>
<li><a href="#">HVAC Inventory</a></li>
</ul>
</li>
<li><a href="#">Rooms</a>
<ul>
<li><a href="#">General Info.</a></li>
<li><a href="#">Interior Lighting</a></li>
<li><a href="#">Windows–Envelope Fenestration</a></li>
<li><a href="#">Doors – Envelope Fenestration</a></li>
<li><a href="#">Plugloads</a></li>
<li><a href="#">Skylights – Envelope Fenestration</a></li>
<li><a href="#">Domestic Hot Water Form</a></li>
<li><a href="#">Specialty Kitchen Equipment</a></li>
<li><a href="#">Misc. Inventory</a></li>
</ul>
</li>
<li><a href="#">Runtime Schedulers</a>
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="#">Swimming Pools</a>
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="report.html">Report</a></li>
<li><a href="#">Temperature</a>
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="index.html">Sign in</a></li>
</ul>
</div>
Upvotes: 0
Views: 1073
Reputation: 21
Put this in the header tag of your html document (all of your html documents) to remove that weird behavior (this solved my problem):
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Upvotes: 1
Reputation: 639
This is happening because you are using width:100%
. What you need is to specify a min-width
style and give its value in pixels. For its appropriate value in pixels check you navigation bar by re-sizing the window horizontally and select something beyond which you can't tolerate the shrinking. You can use standard 1024px
, eg,
#cssmenu{ min-width: 1024px; }
Upvotes: 0
Reputation: 384
make your menu items without display inline-block, replace it with float like this
#cssmenu > ul > li {
/* display: inline-block; */
margin-left: 65px;
position: relative;
float: left;
}
Upvotes: 0