Jump to content
  • 0

Горизонтальное выпадающее меню


Great Rash
 Share

Question

Здравствуйте!

Есть горизонтальное выпадающее меню:

html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Untitled</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="111.css" media="all" rel="stylesheet" type="text/css" />
</head>

<body>

<ul class="dropdown">
<li class="top"><a href="#">Level 1 link</a></li>
<li class="top"><a href="#">Level 1 link</a> <span>v</span>
<ul>
<li><a href="#">Level 2 link</a></li>
<li class="dir"><a href="#">Level 2 link</a>
<ul>
<li><a href="#">Level 3 link</a></li>
<li><a href="#">Level 3 link</a></li>
</ul>
</li>
<li><a href="#">Level 2 link</a></li>
<li><a href="#">Level 2 link</a></li>
</ul>
</li>
<li class="top"><a href="#">Level 1 link</a>
</li>
<li class="top"><a href="#">Level 1 link</a>
</li>
<li class="top"><a href="#">Level 1 link</a></li>
</ul>

</body>
</html>

css

* {
margin: 0;
padding: 0;
font: 12px Tahoma, Arial, sans-serif;
}

ul.dropdown,
ul.dropdown li,
ul.dropdown ul {
list-style: none;
margin: 0;
padding: 0;
}

ul.dropdown {
position: relative;
}

ul.dropdown li {
float: left;
vertical-align: middle;
padding: 7px;
background-color: #f00;
color: #000;
}

ul.dropdown li:hover {
position: relative;
cursor: pointer;
}

ul.dropdown ul {
display: none;
position: absolute;
top: 100%;
left: 0;
min-width: 150px;
border: #000 1px solid;
}

ul.dropdown ul li {
float: none;
}

ul.dropdown ul ul {
top: 0;
left: 100%;
}

ul.dropdown li:hover > ul {
display: block;
}

В Мозилле все работает как часы, а в ИЕ меню работает только если убрать все отступы у LI или если к элементу списка добавить правило zoom: 1;. Ни то ни другое делать нельзя, т.к. без отступов по дизайну нельзя, а если добавить зум, то LI не растягивается на ширину всего контейнера и меню начинает колбасить.

Всю голову сломал, так и не придумал как победить ИЕ. Подскажите, что делать?

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

В IE6 hover работает только с тегами, имеющими по спецификации href, то есть A :rolleyes:

И еще: ">" - такой селектор не поддерживается в IE6.

Варианты "Выпадающее меню для IE" - очень популярны в гугле, их так много и все хороши.

Edited by Justnewone
Link to comment
Share on other sites

  • 0
На ИЕ6 мне плевать.

Погуглить я догадался, но примеров, подходящих под мои нужды не нашел. Если кинете ссылку буду благодарен.

Напрасно, IE6 - до сих пор очень распространен, думаю, даже больше чем FF или OPERA.

Судя по приведенному Вами коду - никаких особых нужд не вижу, буквально каждый первый пример из поиска - Ваш.

Кстати, при hover лучше не пользоваться zoom, добавить haslayout для ie можно безобидным min-height:1px;

Link to comment
Share on other sites

  • 0

В ТЗ ИЕ6 не присутствует, поэтому на него плевать. Сейчас при первом же апдейте Винды юзеру автоматически устанавливается семерка. Разумеется мы говорим о лицензии :rolleyes:

Особые нужды появятся (будет тонны две закругленных углов), буквально каждый первый пример некорректно работает в Эксплорере (естественно седьмом).

Для примера, даже меню глубоко уважаемого мной сайта alistapart.com оказалось бесполезным.

min-height: 1px; обязательно попробую

UPD: Наверное нужно пояснить, почему мне не подходят предлагаемые меню из сети. У них всех используется фиксированная ширина ссылки. Я же не знаю какой ширины у меня может быть ссылка, поэтому меню должно быть резиновым. Кстати, min-height тоже "убивает" стопроцентную ширину у элемента списка. Плюс заметил еще один баг: если навести курсор на самое глубокое меню, потом увести курсор с него, а потом снова навести, то отобразятся сразу оба вложения. Все это относится естественно к ИЕ.

Edited by Great Rash
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy