У меня примерно следующее:
<div id="body">
surrounding text
<div id="pane" style="overflow: auto; height: 500px; width: 500px;">
lots and lots of text here
<span id="some_bit">tooltip appears below-right of here</span>
</div>
more surrounding text (should be overlapped by tooltip)
</div>
а также:
<div id="tooltip" style="width: 100px; height: 100px;">Whee</div>
Я хочу вставить всплывающую подсказку так, чтобы она располагалась над панелью, в которой она находится. Если она прикреплена к элементу, который находится рядом с границей панели (как указано выше), то она должна быть видна выше панель и над текстом, окружающим панель.
Он НЕ должен а) расширять панель, так что вам нужно прокрутить вниз, чтобы увидеть всплывающую подсказку (например, в http://saizai.com/css_overlap.png) или б) быть обрезанными, чтобы вы не могли видеть всю подсказку.
Я вставляю это с помощью JS, поэтому при необходимости я могу добавить оболочку position:relative
div или тому подобное, вычислить смещения и сделать его position:absolute
и т. Д. Я бы предпочел ничего не предполагать о свойстве панели position
- всплывающая подсказка должна быть вставлена с помощью минимальные предположения о возможном макете страницы. (Это всего лишь один пример.)
Я пишу для прототипа библиотеки всплывающих подсказок с открытым исходным кодом.
Расчетное время прибытия: http://jsfiddle.net/vCb2y/5/ ведет себя визуально em> как я хочу (если вы продолжаете повторно наводить курсор на текст триггера), но мне потребуется обновить положение всплывающей подсказки при всех изменениях DOM и поведении прокрутки. Я бы предпочел, чтобы всплывающая подсказка была размещена с использованием чистого CSS / HTML, чтобы она имела такое же визуальное поведение (т.е. она перекрывала все другие элементы), но оставалась в своем положении относительно цели при изменении DOM, прокрутки, и т.п.
Расчетное время прибытия 2: http://tjkdesign.com/articles/z-index/teach_yourself_how_elements_stack.asp (оставьте значения по умолчанию, за исключением установки голубого div 'a' на position: relative; представьте, что «A» - это панель, а «a» - всплывающая подсказка), кажется, ведет себя более точно так, как я хочу, но я не смог заставить его работать в другом месте. Обратите внимание, что если вы сделаете «А» overflow: auto
, это нарушит перекрывающееся поведение «а».