[TIL] #7 Position
position
- html 코드와 상관없이
그리고자 하는 어느 위치에나 요소를 그릴 수 있다- 복잡한 레이아웃 생성 가능!
- 값:
static
,relative
,absolute
,fixed
relative
position: relative;
자체로는 특별한 의미가 없다.
딱히 어느 위치로 이동하지도, 고정되지도 않기 때문.
top
, right
, bottom
, left
속성의 값이 있어야 이동을 하는데
이는position
속성이 주어저야만 적용된다
css
.relative {
position: relative;
}
.top-20 {
top: -20px;
left: 30px;
}
div.relative
는 첫번째div
와 똑같이 그려졌지만 position: relative
속성이 주어진 것이고,
top-20
은 해당 속성에 추가로 위치조정을 더 한것!!
absolute & fixed
👆🏻 준식멘토님께 질문드린 결과, 이제 정말 확실히 알게 된(알고있는 것만 같은) position
속성 개념!!!
대상이 되는 태그의 특정 위치를 지정하고자 할 때,
완전히 고정시키고 싶다면 position: fixed;
속성을 주면 된다.
but 그 부모 혹은 전체 브라우저를 기준으로 위치를 잡고 싶다면?
absolute
position: absolute;
값은 상위태그를 기준으로 위치가 정해진다.
- 부모 태그에
position: relative;
: 위치를 정하고자 하는 대상의 부모 태그를 기준으로 위치 지정
: 부모에 대해 절대적으로 움직이는 것!- 부모 혹은 그 상위 태그에
position
속성이 없는 경우
: 계속해서 상위 태그의 CSS 속성을 확인
:position
태그의 값이 지정되지 않은 경우
<body>
태그를 기준으로 위치 지정
p {
margin: 0;
background-color: yellow;
}
.absolute {
position: absolute;
}
.right-0 {
right: 0;
bottom: 0;
}
block 속성의 p 태그를 inline 속성을 가진 요소처럼 다룰 수 있다.
absolute
속성을 갖게 되면, 딱 해당 요소의 크기만큼만 영역을 차지하고
right, bottom 등의 값을 0만큼 주면 해당 위치로부터 0만큼 떨어졌다는 뜻이므로
딱 붙어보이도록 만들 수 있다!
어떤 기준으로 position: relative;
과 position: absolute;
를 쓰는 것인지 헷갈렸는데
👉🏻 단순히 left, right 등의 위치 조정을 할 때는 기본적인 position
속성을 주기 위해 relative
값을 주고,
👉🏻 위치를 특정짓고 싶다면 position: absolute;
와 position: fixed;
를 선택하여 사용하면 되는데
완전히 고정하는 것이 아닌 이상, absolute
값을 주고싶은 요소의 부모 요소에게 position: relative;
를 부여해주어야 한다.
만약 상위 요소 중 position
속성을 가진 요소가 없다면
결국 HTML 의 제일 상위 태그인 <body>
태그를 기준으로 절대적인 위치를 잡는다.
멘토에게 질문드렸더니, 이 외에도 display: flex;
, display: grid;
를 많이 사용한다고 하셨다.
이에 대한 정리는 추후에!
fixed
position
이 absolute거나 fixed이면 주변의 요소에 상관없이 위치하게 되어
해당 영역이 무의미해지면서 다른 요소들과 겹치게 된다.
이럴 경우
body
태그 자체에padding
,padding-top
을 주거나- header, 고정하고자 하는 대상(ㅇㅖ를들면 탑버튼..) 외의 요소에
margin
margin-top
을 주면 된다
Author And Source
이 문제에 관하여([TIL] #7 Position), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@haileeyu21/TIL-7-Position저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)