чоткий дезайнер
С нами с 20.07.06
Сообщения: 1782
Рейтинг: 731
|
Добавлено: 11/11/08 в 11:49 |
Можно ли сделать выпадающее меню (при наведении мышкой) на CSS, чтоб работало во всех браузерах, но без ипользования javascript и каких-либо дополнительных файлов?
я делаю по такому способу
HTML:
Код: |
<ul>
<li><a href="">Меню 1</a>
<ul>
<li><a href="">Подменю 1</a></li>
<li><a href="">Подменю 2</a></li>
<li><a href="">Подменю 3</a></li>
</ul>
</li>
<ul>
|
CSS:
Код: |
ul li ul {display: none}
ul li:hover ul, ul li ul:hover {display: block}
|
но это не работает в IE, если не применить хак - в CSS указываю ссылку на файл csshover.htc (с нета скачал), тогда в ИЕ работает.
Хотелось бы обойтись без хаков.
И можно ли сделать чтобы выпадающее меню появлялось не при наведении, а при клике на пункт меню?
Последний раз редактировалось: Petek (12/11/08 в 22:15), всего редактировалось 1 раз
|
|
Дизайн (CJ от 40$, AVS от 80$)
|
0
|
|
|
С нами с 25.12.06
Сообщения: 31
Рейтинг: 47
|
Добавлено: 11/11/08 в 13:35 |
HTML:
Код: |
<div id="list_content">
<ul id="lists">
<li><a href="#" class="tl">Title<!--[if IE 7]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<div class="pos1">
<dl>
<dd><a href="#">Link</a></dd>
<dd><a href="#">Link</a></dd>
</dl>
<dl>
<dd><a href="#">Link</a></dd>
<dd><a href="#">Link</a></dd>
</dl>
</div>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
<li><a href="#" class="tl">Title2<!--[if IE 7]><!--></a><!--<![endif]-->
<!--[if lte IE 6]><table><tr><td><![endif]-->
<div class="pos1">
<dl>
<dd><a href="#">Link2</a></dd>
<dd><a href="#">Link2</a></dd>
</dl>
<dl>
<dd><a href="#">Link2</a></dd>
<dd><a href="#">Link2</a></dd>
</dl>
</div>
<!--[if lte IE 6]></td></tr></table></a><![endif]-->
</li>
</ul>
</div>
|
CSS:
Код: |
#list_content { position: relative; float: left; }
#lists {float: left; height: 50px;}
#lists li { width: 100px; float:left; list-style: none; padding-bottom: 30px; }
#lists li a.tl {width: 100px; text-transform: uppercase; height:45px; padding-bottom: 20px; }
#lists div {display:none; }
.pos1 { z-index: 500; }
#lists li a:hover { white-space:normal; background-position:130px 15px;}
#lists li:hover > a { white-space:normal; background-position:130px 15px;}
#lists :hover div { display:block; width:240px; position:absolute; left:0; top:34px; border:1px solid #013034; }
#lists :hover div dl {display:inline; float:left; width:110px;}
#lists :hover div dl dd { margin-left: 5px; }
#lists :hover div dd a {display:block; text-decoration:none; text-align: left; font-size: 1em; text-transform: none;}
#lists :hover div dd a:hover {text-decoration: underline;}
|
Конечно полностью без хаков обойтись тяжело
Вот тебе еще пара ссылок на похожую реализацию:
вертикальное меню и горизонтальное.
И чтоб меню при клике выпадало - без js не обойдешься никак.
|
|
|
|
чоткий дезайнер
С нами с 20.07.06
Сообщения: 1782
Рейтинг: 731
|
Добавлено: 11/11/08 в 14:06 |
Domior, сэнкс, будем разбираться, но код большой конечно, ещё и таблицы, смотрю, там какие-то )
|
|
Дизайн (CJ от 40$, AVS от 80$)
|
0
|
|
|
чоткий дезайнер
С нами с 20.07.06
Сообщения: 1782
Рейтинг: 731
|
Добавлено: 12/11/08 в 22:14 |
гуру css, помогайте!
короче, делаю выпадающее меню по своему варианту, решил сделать ссылки с display:block, в ИЕ проверяю, там 2 ошибки:
1. "Меню 2" и "Меню 3" - при наведении мышки бэкграунд меняется, но только, если наводить мышку на уровне текста и выше, ниже текста - нифига, хотя ссылка блоковая и в нормальных браузерах работает.
2. Выпадающее меню работает, но если навести мышку ниже "Подменю 1" исчезает.
Я уже заколебался варианты искать,
вот он пациент
porndiz.com/test/
|
|
Дизайн (CJ от 40$, AVS от 80$)
|
0
|
|
|
С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365
|
Добавлено: 12/11/08 в 23:46 |
Видимо очередные глюки ИЕ с float'ом
Если размер верхних менюшек предполагается быть одинаковым, то задай фиксированную ширину в "div#topmenu a".
|
|
|
|
чоткий дезайнер
С нами с 20.07.06
Сообщения: 1782
Рейтинг: 731
|
Добавлено: 12/11/08 в 23:56 |
Mika, спасибо, можно и так, хотя изначально предполагал разный размер делать
|
|
Дизайн (CJ от 40$, AVS от 80$)
|
0
|
|
|
Адалт кутюрье
С нами с 16.04.06
Сообщения: 1322
Рейтинг: 827
|
Добавлено: 13/11/08 в 00:21 |
|
|
|
|
чоткий дезайнер
С нами с 20.07.06
Сообщения: 1782
Рейтинг: 731
|
Добавлено: 13/11/08 в 09:11 |
ага, там тоже с таблицами, не хочу усложнять )
короче, я указал фиксированную ширину для a в подменю, а главное может менять размеры,
проблема с наведением мышки ниже текста в Меню 2 и 3 правда не решилась, но подменю теперь не исчезает
|
|
Дизайн (CJ от 40$, AVS от 80$)
|
0
|
|
|
С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365
|
Добавлено: 13/11/08 в 23:42 |
Petek писал: | проблема с наведением мышки ниже текста в Меню 2 и 3 правда не решилась, но подменю теперь не исчезает |
Хм... странно, что не решилась. Только что проверил у себя - нормально меню подсвечается в ИЕ6.
|
|
|
|
чоткий дезайнер
С нами с 20.07.06
Сообщения: 1782
Рейтинг: 731
|
Добавлено: 14/11/08 в 09:28 |
Mika писал: | Хм... странно, что не решилась. Только что проверил у себя - нормально меню подсвечается в ИЕ6. |
хз, я тоже в ИЕ6 смотрел.
щас у меня тоже работает, но после того как я добавил для ИЕ правила
Код: |
* html #topmenu a {
float: left;
}
* html div#topmenu ul li ul {
clear: both
}
|
я сделал для бэкграунда ссылки 2 картинки, чтоб они раздвигались при увеличении текста в ссылке меню, для этого внутрь ссылки поместил тег <b> (для привязки второго бэкграунда) и сделал его блоком, но ИЕ не видел тег <b> вообще, поэтому добавил верхние правила, после этого ИЕ увидел <b> и заодно проблема решилась, хотя может она раньше (в процессе переборки различных вариантов) решилась, я не проверял
|
|
Дизайн (CJ от 40$, AVS от 80$)
|
0
|
|
|