#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
Я пытаюсь расположить дочерний div #handle поверх #handle, который представляет собой div, который скользит вверх и вниз. Вот с чем я сейчас работаю:
$(document).ready(function() {
$(".resizable").resizable({
handles: {
'n': '#handle'
}
});
});
body {
height: 1000px;
}
#container {
width: 100%;
background: #555;
height: calc(100% - 30px);
position: fixed !important;
top: auto !important;
bottom: 0 !important;
left: 0;
right: 0;
}
#handle {
width: 100%;
height: 30px;
top: -29px;
background-color: #fff;
box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.24);
}
<link href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="container" class="resizable">
<div id="handle" class="ui-resizable-handle ui-resizable-n">CONTENT</div>
</div>
Я не могу понять, как будет работать позиционирование, при этом все еще имея возможность перемещать ящик вверх и вниз. Это то, чего я могу достичь с помощью свойств позиционирования или z-индекса? Спасибо.
Ответ №1:
Для первого вопроса:
Для #container
элемента измените height
правило на:
height: calc(100% - 30px);
calc()
Функция поддерживается в большинстве браузеров.
Пример:
$(document).ready(function() {
$(".resizable").resizable({
handles: {
'n': '#handle'
}
});
});
body {
height: 1000px;
}
#container {
width: 100%;
background: #555;
height: calc(100% - 30px);
position: fixed !important;
top: auto !important;
bottom: 0 !important;
left: 0;
right: 0;
}
#handle {
width: 100%;
height: 30px;
top: -29px;
background-color: #fff;
box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.24);
}
<link href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="container" class="resizable">
<div id="handle" class="ui-resizable-handle ui-resizable-n">CONTENT</div>
</div>
Что касается второго вопроса
Проблема .ui-resizable-handle
font-size
в том, что свойство имеет значение 0.1px
. Вам нужно только добавить правило:
#handle div {
font-size: 12px;
}
$(document).ready(function() {
$(".resizable").resizable({
handles: {
'n': '#handle'
}
});
});
body {
height: 1000px;
}
#container {
width: 100%;
background: #555;
height: calc(100% - 30px);
position: fixed !important;
top: auto !important;
bottom: 0 !important;
left: 0;
right: 0;
}
#handle {
width: 100%;
height: 30px;
top: -29px;
background-color: #fff;
box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.24);
}
#handle div {
font-size: 12px;
}
<link href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="container" class="resizable">
<div id="handle" class="ui-resizable-handle ui-resizable-n">
<div>content</div>
</div>
</div>
Комментарии:
1. Я, честно говоря, понятия не имел, что эта функция существует. Спасибо! Есть идеи, как бы я разместил дочерний элемент #handle сверху?
2. Ах, вы хотите, чтобы дочерний элемент находился на подвижной панели или в верхней части контейнера?
3. Да, сэр, я изменю вопрос, чтобы придать ему больше смысла.
4. Изменил мой ответ.
5. Ты потрясающий. Спасибо!