본문 바로가기
HTML + CSS

CSS - 16. Position - absolute

by Su1993 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

댓글