Very Style CSS Мега Меню - PullRequest
       3

Very Style CSS Мега Меню

2 голосов
/ 14 апреля 2011

Я смотрю на создание навигационного меню, похожего по стилю на Very.co.uk

Может ли кто-нибудь указать мне правильное направление, насколько начать и лучшие практики?

Спасибо

Ответы [ 3 ]

4 голосов
/ 14 апреля 2011

Попробуйте Мега выпадающие меню с CSS и jQuery
Это хороший учебник и демо.

2 голосов
/ 14 апреля 2011

Что-то вроде этого - основная идея ...

Демо: http://jsfiddle.net/hgZGS/

JQuery ...


$('#menu span').hide();
$('#menu li').hover(function() {</p>

<pre><code>var offset = $(this).offset();
$(this).find('span').css('marginLeft', offset.left + 'px');
$(this).find('span').show();

var offsetRight = offset.left + $(this).find('span').width();
var ww = $(window).width();
var fixed = offset.left + $(this).width() - $(this).find('span').width();

if (offsetRight > ww) {
    $(this).find('span').css('marginLeft', fixed + 'px');
}
else {
    $(this).find('span').css('marginLeft', offset.left + 'px');
}

}, function () {
$ (Это) .find ( 'пядь') скрыть ();.
});

CSS ...


#menu {
    margin: 20px;   
}
#menu LI {
    display: block;
    float: left;
    border-right: 1px solid #fff;
    background-color: #ccc;
    padding: 5px;
    cursor: pointer;

}
#menu SPAN {
    display: block;
    position: absolute;
    width: 200px;
    height: 100px;
    background-color: #E2E2E2;
    left: 0px;
    margin-top: 5px;
    padding: 5px;
}

HTML ...

<ul id="menu">
    <li>The Quick<span>Quick</span></li>
    <li>Brown<span>Brown</span></li>
    <li>Fox<span>Fox</span></li>
    <li>Jumps<span>Jumps</span></li>
    <li>Over<span>Over</span></li>
    <li>Then<span>The</span></li>
    <li>Tall<span>Tall</span></li>
    <li>White<span>White</span></li>
    <li>Fence<span>Fence</span></li>
</ul>
0 голосов
/ 14 апреля 2011

лучше всего начать с создания структуры типа

<ul>
<li><a href="">Menu</a><div class="subnav">any popunder content</div></li>
...
</ul>

, затем сделать

относительным левым плавающим блоком и .subnav абсолютным позиционированием:
ul li { float: left; display: block; position: relative }
ul li .subnav { display: none; position: absolute; top: 0; left: 0 }
/* you may need to edit top and left to fit your needs */

, затем через cssВы можете сделать:

ul li:hover .subnav { display: block }

и дублировать с помощью jquery для старых браузеров

$('ul li').hover(
  function() { $(this).find('.subnav').css('display', 'block') },
  function() { $(this).find('.subnav').css('display', 'none') }
);

, что может стать началом вашей учебы:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...