{Position}

 

 

 

1️⃣relative

 

 

: 상대 배치

 

: 이동 기준은

본래의 자기 위치로부터

설정 위치로 이동

 

: top/left/bottom/right

에 값을 넣어 이동

 

: z-index로 z 축 지정 (아래 설명)

 

 

예)

{position:relative; left:100px; top:100px;}

 


 

2️⃣absolute

 

 

: 절대 위치

 

: 이동 기준은

중심 좌표

브라우저 좌표

 

: top/left/bottom/right

에 값을 넣어 위치 결정

 

 

ex.1)

div { position: absolute; left:100px; top:100px;}

지정 시 브라우저 왼쪽 상단 모서리가 중심

 

출처: 유튜브 리베하얀님 css1 position 강의 중

 

 

 

 

ex.2)

div{ position: absolute; right:100px; bottom:100px;}

설정 시 브라우저 우측 하단 모서리 중심

 

 

 

 

 

: z-index로 z 축 지정

 

 

: relative 값이 부모일 경우

중심 좌표 바뀜

 

 

: 부모 요소에 relative 값이

없을 경우 <body> 요소가

중심 좌표

 

 

: 위치는

기본 레이아웃에서

공중으로 뜨는 위치, 즉,

모든 윈도우 앞에 위치

 

 

 

*브라우저에

스크롤이 생길 시

페이지를 내릴수록

박스는 안 보이게 된다.

 

스크롤 이동 시 영역 변경

 

 

 


 


3️⃣
Fixed

 

엡솔루트와 비슷,

결정적 차이로는

 

스크롤이 생겨서

페이지를 아래로 내려도

화면상 보이는

박스의 위치에는

변화가 없다.

 

스크롤 이동 시 영역 고정

 

 


 

* relative absoulte의

관계

 

<style>
     body { background-color: pink;}
     .a { position:relative; left:50px; top:90px; width:500px; height:500px; border:5px solid red;}
     .b { position:absolute; left:70px; top:70px; width:100px; height:100px; border:5px solid blue;}
     .c { position:relative; left:20px; top:30px; width:300px; height:300px; border:5px solid purple;}


 </style>

</head>
<body>
      <div class="a">a
         <div class="c">c
            <div class="b">b</div>
         </div>
      </div>

 

 

 

 

* absolute의 부모 태그가

relative일 경우, 중심 좌표

브라우저에서 부모 태그로 바뀜.

 

 


 

 

4️⃣z-index

 

포지션 속성의 기본 형태인

static을 제외하고 다른 모든

relatvie/absolute/fixed에서

사용 가능.

 

 

샘플 코드)

 

div { width:300px; height: 300px;}
      .a { position:absolute; left:270px; top:270px; z-index:2; background:red;}
      .b { position:absolute; left:70px; top:70px; z-index:1; background:purple;}
      .c { position:absolute; left:150px; top:150px; background:gray;}

  </style>

</head>
<body>
     
      <div class="a"></div>
      <div class="b"></div>
      <div class="c"></div>

 

 

 

 

 

그림과 같이 박스의 z 축

위치를 설정할 수 있고

 

코드 작성 시

숫자 1부터 입력 가능,

픽셀(px)은 적지 않는다.

 

 


 

 

*박스 가운데 정렬 시키기*

 

 

먼저 기본 코드)

div { position:absolute; left:50%; top:50%; width:100px; height:100px; border: 10px solid red;}

 

 

위와 같이

포지션 값을

각각 50% 주면

화면 가운데 박스가

정렬할 것 같지만

그렇지 않다.

 

 

absolute의 특성상

박스의 왼쪽 면과

위쪽 면이 만나는 지점이

정중앙에 위치하게 되는 것.

 

 

그러면 어떻게 할까?

과정을 단계별로 알아보자

 

 

 

1️⃣박스 사이즈 알아내기

 

 

위 코드에서 박스 크기는

width/height가 각각 100px,

추가로 border 라인 굵기가 10px

로 가로 세로 각 120px이다.

 

 

 

2️⃣길이 나누기 2

 

이 각 길이의 절반인 60px만큼

왼쪽, 위로 움직여 준다면

박스는 가운데 정렬하게 된다.

 

 

그럼 어떤 속성을 사용해

박스를 움직이게 할 것인가?

 

 

 

3️⃣margin

 

 

바깥 여백인 마진의 특성을

활용하여 필요한 수치만큼 빼준다.

 

div { position:absolute; left:50%; top:50%; margin:-60px 0 0 -60px; width:100px; height:100px; border: 10px solid red;}

 

 

margin 값

 

상 -60px

우 0

하 0

좌 160px

 

 

공식을 정리하자면

이동하고자 하는 요소의

가로 세로 사이즈를 체크하고

각 사이즈 반의 크기만큼

margin을 활용해

마이너스(-) 값을 준다.

 

 


 

 

*실무에서margin 과

relative 활용법 *

 

 

먼저 기본 코드)

    div { width:100px; height:100px; border: 3px solid red;}
</style>

</head>

<body>
 
  text text text text text text
  <br><br><br>
      <div> </div>
  <br><br><br>
  text text text text text text

  </body>
</html>

 

대표사진 삭제

사진 설명을 입력하세요.

 

 

 

박스와 아래위 텍스트 간격 균일.

 

 

 

1️⃣여기서margin 값을

top:-30px;로 주면,

 

div { margin-top: -30px; width:100px; height:100px; border: 3px solid red;}

 

 

 

박스의 바깥 여백을 줄인 거라

박스 아래쪽에 위치한 텍스트도

박스와 함께 움직인다!

 

 

 

 

2️⃣이번엔 같은 수치를

relative로 줄 경우.

 

div { position:relative; top:-30px; width:100px; height:100px; border: 3px solid red;}

 

 

 

박스의 포지션 값 만

변경한 거라

박스 아래 텍스트와는

무관하게 혼자 움직인다.

 

 

 

둘 다 활용도가 높으니

잘 알아두자!

 

728x90

+ Recent posts