Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вопрос по позиционированию (https://javascript.ru/forum/dom-window/2336-vopros-po-pozicionirovaniyu.html)

greatilya 10.12.2008 15:18

Вопрос по позиционированию
 
Вот что хочу получить:

Где синяя рамка - экран, красная рамка - объект, например div. Как прописать правильно позицию дива чтобы он во всех основных браузерах (ИЕ от 6, Опера, FF) был на такой позиции: у правого края блока шириной 1000 который находится посередине экрана(отмечен пунктиром). Сложность в том, что этого блока в 1000 быть не должно. надо как то через скрипт прописать позиционирование, если возможно, через css, в чем я сомневаюсь. Как я понимаю left у дива должен быть: left=(ширина экрана/2)+200 это если ширина экрана более 1000 если меньше то лефт=700. Если это единственный вариант, то профы, подскажите как НАИБОЛЕЕ корректно это написать. Завтра просто с утра сайт сдавать надо. Времени на собственные ошибки нет.

ZoNT 10.12.2008 15:42

<html>
<head>
<style>
.D1 {
	position: relative;
	width: 300px;
	background: red;
	margin-left: 50%;
	left: 200px;
	height: 100%;
}
</style>
</head>
<body>
<div class="D1"></div>
</body>
</html>

Kolyaj 10.12.2008 16:16

ZoNT,
Это не удовлетворяет условию
Цитата:

Сообщение от greatilya
если меньше то лефт=700

и с высотой в 100% не получится, как мне кажется.

greatilya,
а почему не должно быть блока в 1000px? С ним все просто. Центрируете его и к правому краю прилепляете абсолютно позиционированный блок.
UPD: или просто float: right;

ZoNT 10.12.2008 16:59

да, про лефт=700 недочитал. Тогда мой способ не покатит...

greatilya 10.12.2008 17:21

Товарищи, вы уже для меня почти друзья, в смысле имена (ники) уже Ваши запомнил. Посмотрите плиз сайт там пример того что нужно исправить http://www.ampri.ru/test.php. плиз. очень жду, чесно. Там не работают ссылки справа. т.к. слой с z-index=-1 а надо сделать 1, но тогда меню будет неактивное.

Вношу поправку: высоту 100% делать не нужно) это я на картинке просто не учел(

greatilya 10.12.2008 17:28

А margin-left: 50% + 200px не прокатит??? )))) если только через скрипт)))
просто я когдато уже обжогся несколько раз по поводу позиционирования объектов через скрипты... в разных браузерах бывали неточности...

vk65535 10.12.2008 17:32

Как-то так
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
	<style type="text/css">html, body { margin: 0; padding: 0; }</style>
</head>
<body onresize="test()" onload="test()">
<div id="test" style="position: absolute; width: 300px; background-color: green; height: 100%;"></div>
<script type="text/javascript">
function test() {
	var e = document.getElementById('test');
	e.style.left = Math.floor(Math.max(document.body.clientWidth, 1000) / 2 + 200) + 'px';
}
test();
</script>
</body>
</html>

greatilya 10.12.2008 17:38

спасибо, то что нужно! человек спас жизнь человеку!)

vk65535 10.12.2008 17:44

Ой ) там +200 а не +300

greatilya 11.12.2008 03:33

да это уже мелочи, я заметил)

УРА!!! работает!!!


Часовой пояс GMT +3, время: 00:13.