19.09.2008, 18:12
|
|
Определение и смена реальной абсолютной позиции
Всем привет! Передо мной встала одна проблемка, мне нужно определить а затем переустановить реальную абсолютную позицию. Через свойства стиля определяется не совсем корректная позиция, если над дочерним элементом (к примеру <A>) стоит родитель <TD>, чья позиция также абсолютна.
вот например в этом коде
Код:
|
<HTML>
<TITLE>ТЕСТ</TITLE>
<BODY>
<table >
<tr>
<td style="position: absolute; left: -100px;">
<b>
<a onmousedown="w(this,'175.179');" href="http://yandex.ru/" id="fkk" style="position: absolute;">
Йа сЦыЛкОоо
</a>
</table>
</BODY>
</HTML>
<script type="text/JavaScript">
elem = document.getElementById('fkk');
elem.style.left=String(100)+"px";
</script> |
после выпонения скрипта реальная позиция элемента fkk будет равна 0px, но в стиле будет записано 100px.
Так вот мне нужна как-то определить эту 'реальную позицию', и затем изменить её (например прибавить 100px).
Помогите пожалуйста, если кто-либо сталкивался.
|
|
19.09.2008, 18:23
|
Флудер
|
|
Регистрация: 25.07.2008
Сообщений: 1,271
|
|
<b> не закрыт...
String(100)+"px" - зачем это? 100+"px" уже не катит?
Указывать td position: absolute - самоубийство.
Реальная позиция относительно чего? Относительно документа? Тогда всё правильно. В стиле будет записано 100px (относительно родителя, то биш относительно td).
Определяй позицию, в чём проблема то?
|
|
20.09.2008, 20:58
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
element.offsetLeft
element.offsetTop
|
|
22.09.2008, 10:36
|
|
ZoNT:
Это то всё понятно, но моя задача в данный момент - сделать некие универсальные скрипты, встраиваемые без глюков в любую стороннюю страницу. А в некоторых страничках типа яндексовских, бывает и похлеще бред..
Kolyaj:
спасибо, сейчас попробую
|
|
22.09.2008, 10:46
|
|
Kolyaj:
Жаль, но это свойство во-первых только для чтения, во-вторых реальную позицию оно мне не показало..
|
|
22.09.2008, 11:25
|
Кандидат Javascript-наук
|
|
Регистрация: 22.09.2008
Сообщений: 111
|
|
И ещё один косяк с абсолютная позиция и margin - на некоторые элементы с абсолютом margin у родителя(в моём случае body) не влияет, а на некоторые влияет, не знаете где узнать конкретнее, на какие?
Вообще раскрою суть проблеммы, чтобы было понятнее: мне необходимо написать скрипт, который с минимальным разрушением структуры страницы делает отступ от края справа любой страницы, казалось бы проблемма решается с помощью body.marginLeft, но тут как раз встаёт косяк с абсолютными элементами страницы.
Написал скрипт, который находит все абсолютные элементы, и смещает их, но оказывается некоторые абсолютные элементы смещаются сами с маргином.. Может кто сталкивался с подобным, помогите.
|
|
22.09.2008, 12:02
|
Флудер
|
|
Регистрация: 25.07.2008
Сообщений: 1,271
|
|
Бери всё что в боди, помещай в див (это будет глобальный такой контейнер). Делай диву позишн=релэйтив. После этого делай бод марджин-лефт.
|
|
22.09.2008, 12:43
|
Кандидат Javascript-наук
|
|
Регистрация: 22.09.2008
Сообщений: 111
|
|
ZoNT,
Я так и делал сначала, но тут кроется одна запара - если я добавляю элемент после боди(DIV, TABLE), и заключаю в него содержимое документа, то на некоторых страничках (опять-же яндекс) выскакивают ошибки в их скриптах, потому что они к некоторым элементам в своих свкриптах обращаются так:
document.body.elem0...
Сейчас попробовал самому BODY присвоить свойство relative - уже получше, но категорически ничего не смещается например на ogame.ru..
Спасибо, буду пока разбираться с извратами CSS..
|
|
22.09.2008, 12:51
|
Флудер
|
|
Регистрация: 25.07.2008
Сообщений: 1,271
|
|
тогда делай html {margin-left:100px;}
|
|
22.09.2008, 13:50
|
Кандидат Javascript-наук
|
|
Регистрация: 22.09.2008
Сообщений: 111
|
|
разобрался с некототорыми багами - забыл про position:fixed..
ZoNT, спасибо
|
|
|
|