#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
Я пытаюсь сделать так, чтобы содержимое меню перекрывало содержимое, но на данный момент оно перемещает поле содержимого.
Я уже пробовал этот position: relative
трюк, но проблема, похоже, не исчезает. Решение, вероятно, является чем-то действительно очевидным, но мне нужна помощь в его поиске.
РЕДАКТИРОВАТЬ: Извините, забыл добавить, поле также будет изменяться по размеру (), поэтому я стараюсь избегать абсолютного позиционирования.
EDIT2: неважно, right:5px
устраняет эту проблему
HTML
<div class="box">
<div class="top">
<div class="icon"></div>
<div class="menubox">
<ul class="menu">
<li><a href="#">Menu Option 1</a>
</li>
<li><a href="#">Menu Option 2</a>
</li>
</ul>
</div>
</div>
<div class="content">
<p>content goes here</p>
</div>
<div class="content">
<p>content goes here</p>
</div>
</div>
CSS
.box {
width: 400px;
height: 200px;
margin: 5px;
float: left;
background: LightGray;
border: 1px solid DarkGray;
overflow: hidden;
}
.top {
width: 100%;
height: 25px;
background: lightblue;
}
.icon {
float: right;
background: red;
height: 15px;
width: 15px;
margin: 5px;
}
.menubox {
float: right;
background: yellow;
position: relative;
z-index:100;
width: 150px;
}
.content {
width: 180px;
height: 165px;
margin: 0px 10px 47px;
float: left;
position: relative;
z-index: 0;
display: block;
background:DarkGray;
}
li {
list-style-type: none;
text-decoration: none;
}
ul {
margin:none;
padding:none;
}
JS /jQuery
$('.icon').mouseover(function () {
$(".menu").show();
}); //toggle menu on hover
$(".menu").mouseleave(function () {
$(this).hide();
});
Ответ №1:
использовать position: absolute
? скрипка
.menubox {
float: right;
background: yellow;
position: relative;
z-index:100;
width: 150px;
top: 25px;
right: 5px;
position: absolute;
}
.box {
width: 400px;
height: 200px;
margin: 5px;
float: left;
background: LightGray;
border: 1px solid DarkGray;
overflow: hidden;
position: relative; /* add this */
}
Редактировать: лучшая позиция
Комментарии:
1. Извините, забыл добавить, поле также будет
resizable()
, поэтому я стараюсь избегать абсолютного позиционирования2. если вы измените размер поля в скрипке , меню по-прежнему будет отображаться справа, так что все должно быть в порядке. Если вы приведете пример
resizable()
того, что это может помочь?
Ответ №2:
Желтый блок меню должен быть расположен абсолютно так, чтобы он не мешал потоку документа (занимал место).
Дайте ему position:absolute;
Кроме того, элемент .box должен иметь a position:relative
, чтобы меню было расположено относительно этого окна.
Обновил вашу скрипку для вас:
Ответ №3:
Проверьте ссылку ниже, я обновил ваш код. «jsfiddle.net/CcVnL/9 /»