Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   div position:static (https://javascript.ru/forum/xhtml-html-css/23232-div-position-static.html)

Rootpassword 17.11.2011 01:06

div position:static
 
Как отталкиваться от левого верхнего угла родительского div-a, если родительский div имеет position:static ( то есть вложенный див с position:absolute будет цепляться к краю окна браузера ). При условии, что у родителя position:static менять на что-либо другое невозможно.
средствами css без js.

trikadin 17.11.2011 01:08

Цитата:

Сообщение от Rootpassword
При условии, что у родителя position:static менять на что-либо другое невозможно.

Поменять у вложенного div'a position: absolute на position: relative, например.

Rootpassword 17.11.2011 01:14

исходный див на момент добавления потомка непуст.

Rootpassword 17.11.2011 01:18

То есть, если использовать position: relative, то отсчет начнется от того места, где будет первоначально вставлен наш потомок, а это не левый верхний угол родителя, само собой.

trikadin 17.11.2011 01:19

Цитата:

Сообщение от Rootpassword
исходный див на момент добавления потомка непуст.

Т.е. он у вас динамически добавляется? Ну так добавьте его в начало, какие проблемы?

Rootpassword 17.11.2011 01:33

Цитата:

Сообщение от trikadin (Сообщение 137056)
Т.е. он у вас динамически добавляется? Ну так добавьте его в начало, какие проблемы?

У меня как раз он не динамически добавляется.
Но даже если я его сделаю динамически добавляющимся - условно говоря, вставив див с relative в начало, все остальное у меня уедет. при absolute другие элементы отображаются на веб-странице словно absolute позиционированного элемента нету.

trikadin 17.11.2011 01:49

Цитата:

Сообщение от Rootpassword
при absolute другие элементы отображаются на веб-странице словно absolute позиционированного элемента нету.

Хм... Я ценю ваши старания, но честное слово, я знаю как ведут себя элементы с различным позиционированием)) Вы мне уже второй раз порываетесь мне объяснить...

Можно попробовать добавлять в начало элемент с position: relative и нулевой шириной/высотой, и уже в него аппендить нужный элемент.

ksa 17.11.2011 09:27

Rootpassword, начинай уже делать тестовые примеры, хорош лениться...

Pavel M. 17.11.2011 10:55

можно так подвинуть абсолютно позиционированный элемент внутри статического, просто маржинами

по стандарту, если у абсолютно позиционированного нет left top, то он должен быть на месте где был бы, если бы он был static

<p>adfaf adfad fasdf</p>
<p>adfaf adfad fasdf</p>

<div style="width:200px; height:100px; border: 1px solid;">
    
    <div style="width: 50px; height: 50px; position: absolute; background: red; opacity:0.5; margin: 10px;">
    </div>
    
    <p>adfaf adfad fasdf</p>
        
    <p>adfaf adfad fasdf</p>
    
</div>

<p>adfaf adfad fasdf</p>
<p>adfaf adfad fasdf</p>

Rootpassword 17.11.2011 15:48

Пример того, что мне надо. Основной див тут- position:relative, нужен static

<p>adfaf adfad fasdf</p>
<p>adfaf adfad fasdf</p>

<div style="width:400px; height:300px; border: 1px solid; position:relative;  ">
    <p>adfaf adfad fasdf</p>
        
    <p>adfaf adfad fasdf</p>
<div style=" position: absolute;  background: green; opacity:0.5; width:100%; height:100%; top:0px; left:0px;  ">
</div>
   

</div>

<p>adfaf adfad fasdf</p>
<p>adfaf adfad fasdf</p>


Пытаемся так(предложение trikadin)
Нету доступа к размерам дива(100%-это 0)
<p>adfaf adfad fasdf</p>
<p>adfaf adfad fasdf</p>

<div style="width:400px; height:300px; border: 1px solid; position:static;  ">
<div style=" position: absolute;">
<div style=" position: absolute;  background: green; opacity:0.5; width:100px;  height: 100px; ">
</div>
</div>

    <p>adfaf adfad fasdf</p>
        
    <p>adfaf adfad fasdf</p>
   

</div>

<p>adfaf adfad fasdf</p>
<p>adfaf adfad fasdf</p>


Аналогично у Pavel M.

ksa 17.11.2011 16:03

Цитата:

Сообщение от Rootpassword
Пытаемся так(предложение trikadin)

ты не правильно понял что он тебе предлагал... :) Вот так нужно.

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
</script>
</head>
<body>
<p>adfaf adfad fasdf</p>
<p>adfaf adfad fasdf</p>
<div style="width:400px; height:300px; border: 1px solid; position:static;  ">
	<div style=" position: relative;">
		<div style=" position: absolute;  background: green; opacity:0.5; width:100px;  height: 100px; "></div>
	</div>
    <p>adfaf adfad fasdf</p>
    <p>adfaf adfad fasdf</p>
</div>
<p>adfaf adfad fasdf</p>
<p>adfaf adfad fasdf</p>
</body>
</html>

Rootpassword 17.11.2011 16:22

Да нет, отлично понял )) Пытался совместить его идею и идею Павла. Общая проблема обоих вариантов - нет доступа к размерам оригинального дива, который position:static;
А цепляются оба к верхнему углу вполне корректно.

Pavel M. 17.11.2011 16:44

в первом сообщении темы было

> Как отталкиваться от левого верхнего угла родительского div-a, если родительский div имеет position:static
> ...
> средствами css без js.

или уже нужно что-то другое?

ksa 17.11.2011 16:48

Цитата:

Сообщение от Pavel M.
или уже нужно что-то другое?

Это уже как водится... Типа сюрприз! :lol:

trikadin 17.11.2011 20:13

Цитата:

Сообщение от Rootpassword
Да нет, отлично понял )) Пытался совместить его идею и идею Павла. Общая проблема обоих вариантов - нет доступа к размерам оригинального дива, который position:static;

Так в чём проблема-то? В том примере, который привёл ksa, элементу в верхнем левом углу плевать на размеры родителя с position:static.

e-do 29.11.2011 03:09

может стоит промежуточный контейнер <div> с relative прописать? то есть в свой static вложи промежуточный с relative, а в него уже absolute ?

trikadin 29.11.2011 07:38

e-do, уже предлагали... И вообще, это некропост.

e-do 29.11.2011 20:28

Цитата:

Сообщение от trikadin (Сообщение 139635)
e-do, уже предлагали... И вообще, это некропост.

не заметил, что предлагали. А чего это некропост? я что то путаю щас ноябрь 2011 ого? а то я потерялся во времени, да вроде не очень много времени прошло. :) ну я думаю, никому вреда не принес мой пост? ;)

trikadin 29.11.2011 20:33

e-do, просто вопрос уже решён был)


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