2014-01-12 7 views
2

У меня возникли проблемы с позиционированием div, чтобы он отображался в одном месте на любом уровне разрешения/масштабирования. Когда вы нажимаете эту стрелку: http://i.imgur.com/k2rmjLN.png, я запускаю jQuery, чтобы спустить div вниз. Проблема в том, что я не могу заставить ее появляться под этой стрелкой.Сделать div в правильном положении

Pic: http://i.imgur.com/CPnMEGV.png

HTML и Javascript:

<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script> 
     $(document).ready(function() { 
      $("#flip").click(function() { 
       $("#panel").slideToggle(100); 
      }); 
     }); 
    </script> 
</head> 
<body> 
    Welcome Guest! 
    <img src="images/down.png" width="18px" height="18px" alt="Login" id="flip" /> 

    <div id="panel"> 
     <form name="login" action="#" method="post"> 
      Username:<br /> 
      <input type="text" name="username"><br /> 
      Password:<br /> 
      <input type="password" name="password"><br /><br /> 
      <input type="submit" value="Login"> 
     </form> 
    </div> 
    ... 

CSS:

#flip { 
    float: right; 
    margin-left: 5px; 
} 

#panel { 
    display:none; 
    position:absolute; 
    border: 1px solid; 
    padding: 20px; 
    right: 0; 
    top: 25px; 
    z-index: 5; 
    background-color: #FFFFFF; 
    text-align: left; 
} 

Я все еще достаточно новое для этого, так что извините за плохой код. Любая помощь будет оценена!

+0

вам нужно 'положение дел? – lukasgeiter

+0

Должна ли эта панель находиться внутри другого элемента? – Sergio

+0

Спасибо за предоставление ссылки на сайт. Я отправлю ответ в ближайшее время – lukasgeiter

ответ

1

Попробуйте это:

Добавить position:relative; в свой DIV с идентификатором user.

Затем увеличьте верхнее значение panel примерно до 50px, так что оно не распространяется на «Welcome Guest».

Теперь панели position:absolute будут относиться к пользователю div, а не ко всему окну.

В конце концов CSS должен выглядеть следующим образом: absolute` на панели:

#panel { 
    display:none; 
    position:absolute; 
    border: 1px solid; 
    padding: 20px; 
    right: 0; 
    top: 50px; 
    z-index: 5; 
    background-color: #FFFFFF; 
    text-align: left; 
} 
#user { 
    position:relative; 
} 
+0

@yayu Нет проблем :) – lukasgeiter

1

Вы установили #panel на <body> и дал right: 0; поэтому он появится в правом углу.

Вы можете играть с right: *some magic number*px или переместить #panel внутри некоторого relativly расположенного DIV:

<div id="user"> 
    <img src="...." /> 

    <div id="panel"> 
    ..... 
    </div> 
    </div> 

#user{ 
    position: relative; 
} 
#panel { 
right: 0; 
top: 45px; 
} 

Вот рис. Это то, что вам нужно? enter image description here

+0

Спасибо вам большое! Сначала я увидел решение лакунгейтера, но твое - это в основном то же самое. Это именно то, что мне нужно. –

Смежные вопросы