절대적이지만 부모에 상대적인 위치


457

다른 div 안에 두 개의 div가 있고 하나의 자식 div를 부모 div의 오른쪽 상단에 배치하고 다른 자식 div를 CSS를 사용하여 부모 div의 하단에 배치하고 싶습니다. 즉, 두 개의 자식 div와 함께 절대 위치를 사용하고 싶지만 페이지가 아닌 부모 div를 기준으로 배치하십시오. 어떻게해야합니까?

샘플 HTML :

<div id="father">
   <div id="son1"></div>
   <div id="son2"></div>
</div>

당신은 son1이 아버지의 오른쪽 상단에 있고 싶지만 son2는 어디에 있어야합니까? 왼쪽 아래, 오른쪽 또는 가운데?
j08691

1
이 경우 상위 요소를 기준으로 position :을 설정하고 하위 요소를 position : 절대로 설정해야합니다. 첫 번째 자식 요소에는 top : 0과 right : 0을 넣어 부모 요소의 오른쪽 위에 배치해야합니다. 두 번째 자식에서는 bottom : 0을 넣어 부모 요소의 맨 아래에 배치해야합니다. 여기 kolosek.com/css-position-relative-vs-position-absolute 에 상대 기사 와 절대 위치를 자세하게 설명 하는 훌륭한 기사가 있습니다 .
Nesha Zoric

답변:


812
#father {
   position: relative;
}

#son1 {
   position: absolute;
   top: 0;
}

#son2 {
   position: absolute;
   bottom: 0;
}

이 작품 때문에 position: absolute같은 수단 일 "사용은 top, right, bottom, left가 가장 가까운 조상과 관련하여 자신의 위치를하는 position: absoluteposition: relative."

우리가 만드는 그래서 #fatherposition: relative, 아이들이 가지고 position: absolute다음, 사용 topbottom아이들의 위치를.


17
#father { position: relative; }필요한가요?
joshreesjones 5

4
그 안에있는 사람들의 "위치 규칙"을 변경해야합니다.
BlaShadow

36
@ mathguy54 사양에 따르면 절대 위치 요소는 첫 번째 위치 부모에 상대적으로 위치 하므로 위치 값이없는 부모를 의미합니다 static.
Alex W

그러한 시나리오는 어떻습니까 : FATHER는 상대적이며 높이는 100 %입니다. 아들과 son2를 위치시키는 방법은 각각 아버지의 키의 20 %와 70 %입니다.
Rossitten


27
div#father {
    position: relative;
}
div#son1 {
    position: absolute;
    /* put your coords here */
}
div#son2 {
    position: absolute;
    /* put your coords here */
}

1
자녀와 함께 부모의 크기를 조정해야하는 경우 어떻게합니까?
FrenkyB

10

누군가가 부모 아래에 자식 div를 직접 배치하려고하는 경우

#father {
   position: relative;
}

#son1 {
   position: absolute;
   top: 100%;
}

데모 근무 Codepen


6

부모에게 입장을주지 않으면 기본적으로가 걸립니다 static. 그 차이점을 이해하려면이 예제를 참조하십시오

예 1 ::

http://jsfiddle.net/Cr9KB/1/

   #mainall
{

    background-color:red;
    height:150px;
    overflow:scroll
}

여기서 부모 클래스는 위치가 없으므로 요소가 본문에 따라 배치됩니다.

예 2 ::

http://jsfiddle.net/Cr9KB/2/

#mainall
{
    position:relative;
    background-color:red;
    height:150px;
    overflow:scroll
}

이 예에서 부모는 상대 위치를 가지므로 요소는 상대 부모 내부에 절대 위치로 배치됩니다.


그리고 #mainall {height : 150px} ...가 없다면? mainall의 동적 높이가 있다면?
Albert Català

부동 요소는 페이지 (및 CSS) 가로 드 될 때 부모 요소가 가지고 있었던 위치를 기준으로합니다. 페이지를로드 한 후 업데이트하려면 javascript를 사용하십시오. clientX와 clientY를 시작하는 것이 좋습니다.
Abraham Brookes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.