1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<div class="container">


    <ul id="navbar">
      <li><a href="#">Главная</a>
        <ul class="dropdown">
          <li><a href="#">Адрес</a></li>
          <li><a href="#">Телефон</a></li>
          <li><a href="#">Email</a></li>
        </ul>
      </li>
      <li><a href="#">Новости</a>
        <ul class="dropdown">
          <li><a href="#">Адрес</a></li>
          <li><a href="#">Телефон</a></li>
          <li><a href="#">Email</a></li>
        </ul>
      </li>
      <li><a href="#">Контакты</a>
        <ul class="dropdown">
          <li><a href="#">Адрес</a></li>
          <li><a href="#">Телефон</a></li>
          <li><a href="#">Email</a></li>
        </ul>
      </li>
      <li><a href="#">О нас</a>
        <ul class="dropdown">
          <li><a href="#">Адрес</a></li>
          <li><a href="#">Телефон</a></li>
          <li><a href="#">Email</a></li>
        </ul>
      </li>
    </ul>

    <p>Абзац с текстом был добавлен для демонстрации того, что при открытии подпунктов меню они будут скрывать часть контента, а не сдвигать его.</p>
</div>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
.container{
  width: 600px;
  position: relative;
}
.dropdown{
 width: 300px;

}
.dropdown.align_right{
  right:0;
}

#navbar ul {
   display: none;
   background-color: #f90;
   position: absolute;
   top: 100%;
}

#navbar li:hover ul {
  display: block;
}

#navbar,
#navbar ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

#navbar {
  height: 30px;
  background-color: #666;
  padding-left: 25px;
  min-width: 470px;
}

#navbar li {
  float: left;
  position: relative;
  height: 100%;
}

#navbar li a {
  display: block;
  padding: 6px;
  width: 100px;
  color: #fff;
  text-decoration: none;
  text-align: center;
}

#navbar ul li {
  float: none;
}

#navbar li:hover {
  background-color: #f90;
}

#navbar ul li:hover {
  background-color: #666;
}
1
2
3
4
5
6
7
$("#navbar>li .dropdown").each(function(i){
var width = $(this).width();
var widthContainer = $(".container").width();
var position = $(this).parent().position();
if(widthContainer - position.left- width < 0)
    $(this).addClass('align_right');
});

пример взять с форума http://www.cyberforum.ru/php-beginners/thread1679261.html