>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Хитрый вопрос знатокам http://forum.mozilla-russia.org/viewtopic.php?id=11138 |
Konstantin S. > 28-06-2006 15:20:59 |
Добрый день. Возникла такая простая на первый взгляд задачка: Есть окно, в котором находится наверху тулбар с кнопками, а ниже -- Browser. То есть, сначала мы видим такую картину: А после того, как подвинули скроллбар вниз, такую: Компоновка окна должна быть такая, как на рисунке. То есть, на фоне во все окно Browser control, а над ним Я рассматривал два варианта реализации: 1. При загрузке HTML страницы сразу же после тэга "body" вставлять прозрачную картину, с высотой, равной высоте тулбара. Проблема в том, что если на странице есть слои с абсолютным позиционированием, то они все равно будут наверху, то есть, под тулбаром. Спасибо. |
rowlad > 28-06-2006 15:55:34 |
тебе надо чтобы верхний блок (тулбар) был вообще намертво к верху привинчен (аля фрейм), или он может в итоге скролиться со всем телом документа, а нижний просто будет скролить дополнительно внутри документа по отношению к нему?
это в связи с чем так будет? выставляй Z-index как твоя душа пожелает ЗЫ |
Al_H > 28-06-2006 16:25:27 |
Если речь идет о блоке, а не панели самого браузера, то |
Konstantin S. > 28-06-2006 16:40:46 |
Поясню на конкретном примере: На фоне браузер, сверху полупрозрачный тулбар (окно с альфа-каналом). Мы видим, что верхушка страницы находится под тулбаром и если там есть ссылки, Соответсвенно, когда мы скроллим страницу вниз, ее контент как бы заходит под Но беда в том, что если на странице есть слои с position:absolute, то они не подвинутся вниз, Если ести слои представляют из себя, например, выпадающее меню, то меню будет вылезать То есть, ситуация понятна... А вот как ее решить, нет... |
Al_H > 28-06-2006 17:32:56 |
или или |
Anton > 28-06-2006 19:44:30 |
Если речь идёт о xul, то "плавающую" панель можно сделать из popup'а: Выделить код Код:<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="window" title="0" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="showpopup();"> <script type="application/x-javascript"> <![CDATA[ var c = 0; function showpopup () { if (c++ > 3) return; // на всякий случай var pp = document. getElementById ("pp"); pp. showPopup (document. firstChild, 10, 20, "tooltip"); } ]]> </script> <vbox width="200" height="200"> <popup id="pp" noautohide="true" onpopuphiding="setTimeout(showpopup,0);"> <toolbar> <toolbarbutton label="l1"/> <toolbarbutton label="l2"/> </toolbar> </popup> <button label="clickme" oncommand="alert('test');"/> </vbox> </window> Другой вопрос, как сделать его прозрачным... |
Al_H > 28-06-2006 21:28:59 |
В общем, правильно заданный вопрос - это уже половина ответа. Операционная система - Windows? Панелька - от самого браузера, или это элемент внутри веб-страницы? Как она появилась над областью контента? |
Konstantin S. > 28-06-2006 21:38:27 |
Не совсем все так просто: Выделить код Код:<html> <body style="border: 1px dashed #999;"> <div style="background-color: #9F9; position:absolute; left: 0px; top: 0px;">ABSOLUTE DIV</div> <div style="background-color: #99F;">NORMAL DIV</div> </body> </html> Вот скриншот в Мозилле: Теперь начинаем тестить: 1. Вариант К такому результату, что "NORMAL DIV" смещается вниз, а вот 2. Вариант Во всех браузерах одно и то же: ничего не изменилос, кроме как в FireFox: Вот, что получается: Не будет ли проблем с этим будущем ? Можно ли гарантировать, что вариант 3 И еще вопрос: если стиль для "html" |
Konstantin S. > 28-06-2006 21:41:22 |
Отвечаю: |
Konstantin S. > 28-06-2006 21:58:19 |
Дополнение: на куче страниц. Вроде, все работает как часики. Респект Al_H за совет. а) Как перехватить входящий траффик для вставки своего CSS ? |
Al_H > 28-06-2006 22:32:31 |
Как вариант: В браузерах, в которых не работает margin-top, может сработать padding. Попробуйте, таким образом может найтись универсальный вариант.
Тщательно распланированная страница может разлететься, тем более сверстанная на CSS. |
Konstantin S. > 29-06-2006 01:08:04 |
К сожалению padding не работает нигде.
Я тестил на сайте http://www.csszengarden.com. Вроде все Окей.
А именно фильтровать контент как ? Просто помимо этого я еще хочу, например, заменить одни слова на другие...
Хмм... Как бы это проверить, и найти "проблемные страницы" ? |
Al_H > 29-06-2006 08:12:31 |
Этого далеко не достаточно. И прежде всего - верстка-то у них всегда на основе одного и того же HTML-кода.
Была тема, в которой выложено несколько скриптов для Greasemonkey, один из них - тот, что попроще - мой. Пользуйтесь поиском.
Только на собственном горьком опыте. Я могу примерно предположить, когда метод может давать осечку. Например, при жестком задании высоты страницы и полей - может, теоретически. При переопределении свойства display у body. В любом случае, всего не предусмотреть, и какая-то гарантия была бы только если бы было специальное расширение, очень популярное, и люди бы сообщали обо всех багах в течение года. Кстати, еще могут быть осечки... не при наложении фона, а, пожалуй, при установке у body значения border. В общем, время покажет. |
Konstantin S. > 29-06-2006 18:12:16 |
В общем я тут проверял на разных страницах с разными CSS. Вроде все нормально. А вот с расширениями я так ничего толком не понял. Кстати, есть ли в природе хорошая документация по работе с ActiveX Мозиллы ? Я вот нашел только вот это: и это http://www.paranoia.clara.net/index.html Интересно, а есть ли еще что-то ? |