반응형
position 속성
HTML 요소의 위치 설정을 지정하는 스타일 속성
속성값 | 설명 |
static(기본값) | 요소를 문서의 일반적인 흐름에 따라 배치하도록 설정 |
relative | 요소를 문서의 일반적인 흐름에 따라 배치하고, 요소의 영역을 기준으로 top, right, bottom, lefe 스타일 속성의 값에 따라 오프셋을 적용하도록 설정 |
absolute | 요소를 문서의 일반적인 흐름에서 제거하고, 조상 요소 중에 가장 가까운 위치 지정 요소를 기준으로 배치하도록 설정 (조상 요소 중 위치 지정 요소가 없는 경우, 초기 컨테이닝 블록을 기준으로 배치) |
fixed | 요소를 문서의 일반적인 흐름에서 제거하고, 브라우저 화면을 기준으로 배치하도록 설정 |
HTML 요소의 배치방법
1. HTML 요소의 배치 : 기본적인 HTML 요소는 HTML 문서의 일반적인 흐름에 따라서 순서대로 배치
2. 상대적인 위치 : 요소가 문서의 일반적인 흐름에 따라 배치됐을 때의 영역을 기준으로 상대적인 위치에 배치
3. 절대적인 위치 : 요소를 문서의 일반적인 흐름에서 제거하고, 특정 영역을 기준으로 배치
위치 지정 요소와 절대 위치 지정 요소
1. 위치 지정 요소 : position 스타일 속성의 값이 relative, absolute, fixed 중 하나인 요소
(즉, position 스타일 속성의 값이 static이 아닌 요소)
2. 절대 위치 지정 요소 : position 스타일 속성의 값이 absolute, fixed 중 하나인 요소
(이 요소는 문서의 일반적인 흐름에서 제거되므로, 부모 요소의 컨텐츠로 인식되지 않는다)
컨테이닝 블록 : 요소의 크기나 위치는 컨테이닝 블록에 영향을 받으며, position 스타일 속성의 값에 따라 요소의 컨테이닝 블록이 달라진다.
1. HTML 요소의 배치 : 기본적인 HTML 요소는 HTML 문서의 일반적인 흐름에 따라서 순서대로 배치
2. 상대적인 위치 : 요소가 문서의 일반적인 흐름에 따라 배치됐을 때의 영역을 기준으로 상대적인 위치에 배치
3. 절대적인 위치 : 요소를 문서의 일반적인 흐름에서 제거하고, 특정 영역을 기준으로 배치
위치 지정 요소와 절대 위치 지정 요소
1. 위치 지정 요소 : position 스타일 속성의 값이 relative, absolute, fixed 중 하나인 요소
(즉, position 스타일 속성의 값이 static이 아닌 요소)
2. 절대 위치 지정 요소 : position 스타일 속성의 값이 absolute, fixed 중 하나인 요소
(이 요소는 문서의 일반적인 흐름에서 제거되므로, 부모 요소의 컨텐츠로 인식되지 않는다)
컨테이닝 블록 : 요소의 크기나 위치는 컨테이닝 블록에 영향을 받으며, position 스타일 속성의 값에 따라 요소의 컨테이닝 블록이 달라진다.
속성 값 | 설명 |
static, relative | 그 요소와 가장 가까운 블록 레벨 조상 요소의 콘텐츠 영역(content-box) |
absolute | 조상 요소 중 가장 가까운 위치 지정 요소의 padding을 포함하는 영역이거나 조상 요소 중 위치 지정 요소가 없는 경우 초기 컨테이닝 블록 |
fixed | 브라우저 화면(viewport) |
* 블록 레벨 요소는 display 스타일 속성의 값이 block, inline-block, list-item, table 등인 요소를 말한다
* 최상위 요소의 컨테이닝 블록은 초기 컨테이닝 또는 초기 컨테이닝 블록으로 부르는 사각형이다.
* 초기 컨테이닝 블록은 일반적으로 브라우저 화면이 된다.
기준 영역
위치 지정 요소가 배치될 때 기준으로 삼는 영역을 말하며, position 스타일 속성의 값에 따라 요소의 기준 영역이 달라진다
속성 값 | 설명 |
relative | 요소가 문서의 일반적인 흐름에 따라 배치됐을 때의 영역 |
absolute, fixed | 컨테이능 블록 |
* position 스타일 속성의 값이 static인 경우에는 top, bottom, left, z-index 스타일 속성에 영향을 받지 않는다.
top, right, left, bottom 속성
기준 영역과 요소 사이의 간격을 설정
속성 값 | 설명 |
auto (기본값) | 상황에 따라 브라우저가 계산해서 설정 |
Length | 크기 단위를 사용해서 설정 |
percentage | 컨테이닝 블록 크기의 백분율로 설정 |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css position</title>
<style>
#container {
box-sizing: border-box;
background-color: #efe;
width: 1000px;
height: 400px;
border: 3px solid green;
position: relative;
}
#container > div {
position: absolute;
box-sizing: border-box;
width: 200px;
height: 100px;
background-color: #fee;
border: 3px solid red;
text-align: center;
line-height: 100px;
}
.box:nth-child(1) {
left: 10px;
top: 10px;
}
.box:nth-child(2) {
right: 10px;
top: 10px;
}
.box:nth-child(3) {
left: 10px;
bottom: 10px;
}
.box:nth-child(4) {
right: 10px;
bottom: 10px;
}
</style>
</head>
<body>
<div id="container">
<div class="box">Box 1</div>
<div class="box">Box 2</div>
<div class="box">Box 3</div>
<div class="box">Box 4</div>
</div>
</body>
</html>
실행결과
▼ 소스코드 살펴보기
14 : div 요소들이 #container의 영역을 기준으로 배치 대도록 position 설정
18 : #container 요소의 영역을 기준으로 배치
(containing block : 조상 요소 중 가장 가까운 위치 지정 요소의 padding-box →container 요소의 padding-box)
궁금하신 점이나 이해하기 어려운 부분은
댓글로 달아주시면 제가 친절하고 아는 선에서 알려드릴게요^^
댓글과 하트는 저에게 많은 힘이 됩니다 :)
반응형
'Web > CSS' 카테고리의 다른 글
CSS float 속성 (0) | 2021.08.23 |
---|---|
CSS 목록속성과 그림자 속성 (0) | 2021.08.06 |
CSS 문단 속성 (0) | 2021.07.15 |
CSS 글자속성 (3) | 2021.06.11 |
CSS 배경속성 (0) | 2021.04.22 |
댓글