У меня есть что-то смутное, похожее на следующее:
<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>
То, что я хочу сделать, это вставить всплывающую подсказку так, чтобы она была расположена над областью, в которой он находится. Если он прикреплен к элементу, который находится рядом с границей панели (как выше), то он должен быть виден над панелью и над текстом, окружающим панель.
Это НЕ должно a) расширять панель, так что вам нужно прокрутить вниз, чтобы увидеть, что всплывающая подсказка (как в http://saizai.com/css_overlap.png), или b) обрезана, так что вы не можете увидеть всю подсказку.
Я вставляю это с помощью JS, так что я могу добавить обертку position:relative
div или подобное, если необходимо, вычислить смещения и сделать ее position:absolute
и т. Д. Я бы предпочел не предполагать ничего о * 1017 панели * свойство - всплывающая подсказка должна быть вставляемой с минимальными предположениями о возможном макете страницы. (Это только один пример.)
Это я пишу для библиотеки прототипов, которая будет с открытым исходным кодом.
ETA: http://jsfiddle.net/vCb2y/5/ ведет себя визуально так, как я хочу (если вы продолжаете повторно парить текст триггера), но мне потребуется обновить положение всплывающей подсказки для всех изменений DOM и прокрутка поведения. Я бы предпочел, чтобы всплывающая подсказка располагалась с чистым CSS / HTML, чтобы она имела такое же визуальное поведение (то есть перекрывает все другие элементы), но остается на своей позиции относительно цели при изменениях DOM, прокрутке и т. Д. .
ETA 2: http://tjkdesign.com/articles/z-index/teach_yourself_how_elements_stack.asp (сохраните значения по умолчанию, за исключением того, что установите cyan div 'a' в положение: относительное; представьте, что A - это панель, а подсказка - "a"), похоже, ведет себя более точно так, как я хочу, но я не смог заставить его работать в другом месте. Обратите внимание, что если вы сделаете 'A' overflow: auto
, это нарушит перекрывающееся поведение 'a'.