Rozważmy następujący proste menu znaczników (generowane automatycznie, a ja nie mam dużo nad nim kontroli):CSS przepełnienie ukryty i bezwzględne położenie
.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>
W powyższym kodzie, menu ma o stałej szerokości, ale ma więcej przedmiotów, niż może zmieścić się na tej szerokości, więc reszta elementów przejdzie do drugiej linii. Chcę wyświetlić tylko te elementy, które zmieszczą się w pierwszej linii i chcesz ukryć resztę.
W tym celu chcę określić wysokość menu. Używam tego CSS dla menu:
.menu {
width: 500px;
height: 20px;
overflow: hidden; /* problem */
}
Problem że Powyższy css ukrywa .submenu
rzeczy też. Zobacz wersję demonstracyjną, aby zrozumieć problem.
Demo:http://jsfiddle.net/Lgyg2a4r/
Dlaczego nie stosujesz stylizacji w swoim podmenu, aby wyglądało bardziej jak rozwijane menu. Tło, obramowanie, cieniowanie – Andrew
W jaki sposób użytkownik może kiedykolwiek dostać się do przedmiotów, które pojawiają się w drugim wierszu? –
Czy masz środki, aby dodać klasę do wszystkich przedmiotów znajdujących się w drugiej linii? – MCMXCII