folgende einfache Menü Markup Betrachten (automatisch generiert, und ich habe nicht viel Kontrolle über sie):CSS Überlauf versteckt und absolute Position
.menu {
width: 500px;
height: 20px;
list-style: none;
padding: 0;
margin: 0;
/* overflow: hidden ... problem */
}
li {
float: left;
position: relative;
margin-right: 30px;
}
ul li .submenu {
position: absolute;
left: 0;
display: none;
padding: 0;
margin: 0;
list-style: none;
width: 100px;
}
ul li:hover .submenu {
display: block;
}
<ul class="menu">
<li>Lorem ipsum</li>
<li>Submenu
<ul class="submenu">
<li>Sub item 1</li>
<li>Sub item 2</li>
</ul>
</li>
<li>consectetur</li>
<li>adipiscing elit</li>
<li>Aliquam elit nisi</li>
<li>pharetra quis</li>
<li>nulla eget</li>
</ul>
In dem obigen Code, wird das Menü hat eine feste Breite, aber es hat mehr Elemente, als in diese Breite passen, so dass der Rest der Elemente in der zweiten Zeile angezeigt wird. Ich möchte nur die Elemente anzeigen, die in die erste Zeile passen und den Rest ausblenden möchten.
Zu diesem Zweck möchte ich die Höhe für das Menü angeben. Ich bin mit diesem CSS für das Menü:
.menu {
width: 500px;
height: 20px;
overflow: hidden; /* problem */
}
Problem ist, dass die oben CSS versteckt die .submenu
Einzelteile auch. Bitte sehen Sie sich die Demo an, um das Problem zu verstehen.
Demo:http://jsfiddle.net/Lgyg2a4r/
Warum wenden Sie kein Styling auf Ihr Untermenü an, damit es mehr wie ein Dropdown-Menü aussieht? Hintergrund, Rahmen, Schlagschatten – Andrew
Wie kommt der Benutzer jemals zu den Elementen, die in der zweiten Zeile angezeigt werden? –
Haben Sie die Möglichkeit, allen Elementen in der zweiten Zeile eine Klasse hinzuzufügen? – MCMXCII