我在浏览器调整大小时遇到div溢出内容的问题。我在这个网站上阅读了多个解决方案,指出了溢出的正确用法:隐藏和位置:相对,但是当我尝试实现这些解决方案时,它只是打破了其他事情。我想我错过了一些关于如何正确包装和应用这些设置的内幕技巧。例如,将overflow:hidden应用于包装器可以修复溢出的cog图标,但在此过程中会破坏左侧菜单的下拉列表。
这两个菜单都有下拉菜单。我可能对此采取了不正确的方法,或者本网站上推荐的解决方案无疑会起作用。只是寻找这个指针。
它只是包装内的2个菜单(右侧菜单齿轮图标是占位符,也将成为下拉菜单。)
#menu, #menu ul {
margin: 0;
padding: 0;
list-style: none;
}
#menuwrapper {
position: relative;
width: 100%;
height: 37.6px;
background-color: #111;
background-image: linear-gradient(#444, #111);
box-shadow: 0 1px 1px #777;
}
#menu {
width: 980px; /*width of menu*/
margin: 0px auto; /*margin from top of page*/
float: left;
}
#menu:before,
#menu:after {
content: "";
display: table;
}
#menu:after {
clear: both;
}
#menu {
zoom: 1;
}
#menu li {
float: left;
border-right: 1px solid #222;
box-shadow: 1px 0 0 #444;
position: relative;
}
#menu a {
float: left;
padding: 12px 30px;
color: #999;
text-transform: uppercase;
font: bold 12px Arial, Helvetica;
text-decoration: none;
text-shadow: 0 1px 0 #000;
}
#menu li:hover > a {
color: #fafafa;
}
*html #menu li a:hover { /* IE6 only */
color: #fafafa;
}
#menu ul {
margin: 20px 0 0 0;
_margin: 0; /*IE6 only*/
opacity: 0;
visibility: hidden;
position: absolute;
top: 38px;
left: 0;
z-index: 1;
background: #444;
background: linear-gradient(#444, #111);
box-shadow: 0 -1px 0 rgba(255,255,255,.3);
border-radius: 3px;
transition: all .2s ease-in-out;
}
#menu li:hover > ul {
opacity: 1;
visibility: visible;
margin: 0;
}
#menu ul ul {
top: 0;
left: 150px;
margin: 0 0 0 20px;
_margin: 0; /*IE6 only*/
box-shadow: -1px 0 0 rgba(255,255,255,.3);
}
#menu ul li {
float: none;
display: block;
border: 0;
_line-height: 0; /*IE6 only*/
box-shadow: 0 1px 0 #111, 0 2px 0 #666;
}
#menu ul li:last-child {
box-shadow: none;
}
#menu ul a {
padding: 10px;
width: 130px;
_height: 10px; /*IE6 only*/
display: block;
white-space: nowrap;
float: none;
text-transform: none;
}
#menu ul a:hover {
background-color: #0186ba;
background-image: linear-gradient(#04acec, #0186ba);
}
#menu ul li:first-child > a {
border-radius: 3px 3px 0 0;
}
#menu ul li:first-child > a:after {
content: '';
position: absolute;
left: 40px;
top: -6px;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #444;
}
#menu ul ul li:first-child a:after {
left: -6px;
top: 50%;
margin-top: -6px;
border-left: 0;
border-bottom: 6px solid transparent;
border-top: 6px solid transparent;
border-right: 6px solid #3b3b3b;
}
#menu ul li:first-child a:hover:after {
border-bottom-color: #04acec;
}
#menu ul ul li:first-child a:hover:after {
border-right-color: #0299d3;
border-bottom-color: transparent;
}
#menu ul li:last-child > a {
border-radius: 0 0 3px 3px;
}
#usermenu {
float: right;
width: 300px;
height: inherit;
border-radius: 0px; /*Round the edges*/
overflow:hidden;
}
#usermenu img {
position: absolute;
display: inline-block;
margin-top: 7px;
margin-left: 5px;
}
<head>
<link rel="stylesheet" href="navbar.css">
</head>
<div id="menuwrapper">
<ul id="menu">
<li><a href="#">Home</a></li>
<li>
<a href="#">Categories</a>
<ul>
<li><a href="#">Menu1</a></li>
<li><a href="#">Menu2</a></li>
<li><a href="#">Menu3</a></li>
<li><a href="#">Menu3</a></li>
</ul>
</li>
<li><a href="#">Stuff</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
<div id="usermenu">
<a href="#"><img src="images/SettingsCog_24x24.png" alt="User Settings" /></a>
<a href="#"><img src="images/SettingsCog_24x24.png" alt="User Settings" /></a>
<a href="#"><img src="images/SettingsCog_24x24.png" alt="User Settings" /></a>
<a href="#"><img src="images/SettingsCog_24x24.png" alt="User Settings" /></a>
<a href="#"><img src="images/SettingsCog_24x24.png" alt="User Settings" /></a>
</div>
</div>