본문 바로가기
HTML + CSS

CSS - 16. Position - absolute

by 알쓸 큐레이터 2020. 6. 15.
반응형

1. Position

이제까지 html 코드를 작성하면, 작성한 순서대로 페이지에 그려졌다. CSS의 position 프로퍼티를 사용하면, html 코드와 상관없이 그리고 싶은 어느 위치에나 요소를 그릴 수 있다. 예를 들어 index.html에서 코드의 위치는 제일 마지막인데, 페이지에서는 제일 위에 보이게 할 수 있다. 

position에서 사용하는 값은 4개가 있는데 static은 거의 사용하지 않고, 나머지 3가지들을 사용한다.

  • position: static;

  • position: relative;

  • position: absolute;

  • position: fixed;

 


2. relative

position: relative; 자체로는 특별한 의미가 없다. 딱히 어느 위치로 이동하지 않는다. 위치를 이동시켜주는 top, right, bottom, left 프로퍼티가 있어야 원래의 위치에서 이동할 수 있다.

top, right, bottom, left은 position이라는 프로퍼티가 있을 때만 적용되는 프로퍼티이다.

.relative {
  position: relative;
}
.top-20 {
  top: -20px;
  left: 30px;
}

div.relative는 위의 div와 똑같이 그려졌다.

div.relative.top-20은 위로 20px 이동하고, 왼쪽에서 30px만큼 떨어졌다. 여기서 알 수 있는 점은 마이너스 값을 주면 아래로 떨어지지 않고, 위로 올라가게 된다는 것이다.

 


3. absloute

position: absolute; 는 이름과 같이 절대적인 위치에 둘 수 있다. 어떤 기준으로 절대적이냐 하면, 특정 부모에 대해 절대적으로 움직이게 된다. 부모 중에 position이 relative, fixed, absolute 하나라도 있으면 그 부모에 대해 절대적으로 움직이게 된다. 

일반적으로 absolute를 쓸 경우, 절대적으로 움직이고 싶은 부모에게 position: relative;를 부여하면 된다.

p {
  margin: 0;
  background-color: yellow;
}
.absolute {
  position: absolute;
}
.right-0 {
  right: 0;
  bottom: 0;

p태그에 노란색으로 배경을 칠했다. 원래 p태그는 block-element이기 때문에 가로크기가가로 크기가 부모 너비만큼 전부 차지해야 하는데, 마치 inline-element처럼 내용의 크기만큼만 너비가 생겼다. 이렇게 absolute 값을 갖게 되면, 내용의 크기만큼만 가로 크기가 된다.

right: 0;의 의미는 오른쪽으로부터 0만큼 떨어졌다는 뜻이라 부모의 우측에 딱 붙어서 나와있다. bottom: 0;도 마찬가지다.

.right-0에 left:0;을 추가하면 부모의 왼쪽에 0 떨어져 있다는 뜻이라서 왼쪽부터 요소가 시작하게 된다. 마치. right-0에 width: 100%를 준 것과 같은 결과이다.

반응형

'HTML + CSS' 카테고리의 다른 글

CSS - 18. 레이아웃  (0) 2020.06.15
CSS - 17. Position - fixed  (0) 2020.06.15
HTML/CSS - 15. Input  (0) 2020.06.15
HTML - 14. Table  (0) 2020.06.15
HTML/CSS - 13. List  (0) 2020.06.15

댓글