티스토리 뷰
float 레이아웃
- float를 배치하지 않은 경우 블록 요소인 각 콘텐츠는 소스 코드의 순서대로 위에서 아래로, 즉 세로로 표시한다.
- float가 설정된 블록은 배치 흐름에서 벗어나 왼쪽 또는 오르쪽에 섬처럼 떠 있는 상태가 된다.
- 즉, float를 사용하지 않으면 세로로 놓이는 콘텐츠를 float을 사용하여 옆으로 놓을 수 있다는 뜻이다.
- 일반적으로 왼쪽에 배치하고 싶은 것은 float:letf; 오른쪽은 float:right; 라고 설정한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
<style>
header{
background-color :#ff0000;
}
#left{
width:500px;
background-color:#d1ec56;
float:left;
}
#right{
width:280px;
background-color:rgb(0, 62, 255);
float:right;
}
footer{
background-color:rgb(99, 24, 83);
}
</style> |
cs |
*실행 결과
- 푸터 영역이 가운대로 들어오는 것이 정상이다.
- 여기서 푸터 영역에 clear:both;를 설정해주면 가운데로 들어가는 것을 방지 할 수 있다.
1
2
3
4
5
6 |
footer{
background-color:rgb(99, 24, 83);
clear:both;
}
|
cs |
*실행 결과
3단 레이아웃
- 3단으로 만들고 싶은 경우 모든 콘텐츠 영역을 float:left; 로 설정하거나, 마지막 콘텐츠 영역(#cont3)에만 float:right; 로 설정하는 방법이 있다.
* 전부 float:left;로 설정한 경우
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 |
<html>
<head>
<style>
header{
background-color :#ff0000;
}
#cont1{
float:left;
margin-right: 20px;
width:300px;
background-color: rgb(251, 255, 0);
}
#cont2{
float:left;
margin-right: 20px;
width:300px;
background-color:rgb(163, 255, 77);
}
#cont3{
float:left;
width:300px;
background-color: rgb(14, 123, 255);
}
footer{
background-color:rgb(99, 24, 83);
clear:both;
}
</style>
</head>
<body>
<header>
헤더영역<br>
헤더영역<br>
헤더영역<br>
</header>
<div id="cont1">
콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역
콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역
</div>
<div id="cont2">
콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역
콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역
</div>
<div id="cont3">
콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역
콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역
</div>
<footer>
푸터영역<br>
푸터영역<br>
푸터영역<br>
</footer>
</body>
</html>
|
cs |
*실행 결과
다단 3단 레이아웃
- 일반적으로 메인 콘텐츠 영역을 먼저 작성 한 뒤 서브 콘텐츠 영역을 기술한다.
- 이렇게 하면 float를 유용하게 사용하기 힘들다.
- 이를 해결하기 위해 메인콘텐츠와 서브 콘텐츠를 div로 감쌈으로서 2단 콘텐츠로 만든 뒤, 다시 div 태그 안에서 2단으로 만드는 기법을 이용하면 해결 할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 |
<html>
<head>
<style>
header{
background-color :#ff0000;
}
#leftcont{
float:left;
padding:10px;
background-color: rgb(0, 0, 0);
width:600px;
}
#cont1{
margin-right: 20px;
width:250px;
background-color: rgb(251, 255, 0);
}
#cont2{
margin-right: 20px;
width:250px;
background-color:rgb(163, 255, 77);
}
#cont3{
float:right;
width:300px;
background-color: rgb(14, 123, 255);
}
footer{
background-color:rgb(99, 24, 83);
clear:both;
}
</style>
</head>
<body>
<header>
헤더영역<br>
헤더영역<br>
헤더영역<br>
</header>
<div id="leftcont">
<div id="cont1">
콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역
콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역 콘텐츠 1 영역
</div>
<div id="cont2">
콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역
콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역 콘텐츠 2 영역
</div>
</div>
<div id="cont3">
콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역
콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역 콘텐츠 3 영역
</div>
<footer>
푸터영역<br>
푸터영역<br>
푸터영역<br>
</footer>
</body>
</html>
|
cs |
*실행 결과
===================================================================================
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 |
<style>
header{
background-color :#ff0000;
}
#leftcont{
float:left;
padding:10px;
background-color: rgb(0, 0, 0);
width:600px;
}
#cont1{
float:left;
margin-right: 20px;
width:250px;
background-color: rgb(251, 255, 0);
}
#cont2{
float:right;
margin-right: 20px;
width:250px;
background-color:rgb(163, 255, 77);
}
#cont3{
float:right;
width:300px;
background-color: rgb(14, 123, 255);
}
footer{
background-color:rgb(99, 24, 83);
clear:both;
}
</style> |
cs |
*실행 결과
- 팁을 주자면 항상 바깥 영역 태그부터 float을 적절히 설정한 뒤 내부 영역을 float 설정을 해주면 실수를 줄일 수 있다.
***float 지정 레이아웃 사용 시 한계와 주의해야 할 점들
- float 속성은 가로로 정렬된 블록의 높이를 자동으로 일정하게,가지런히 할 수 없다. 그래서 한 콘텐츠 영역에 내용이 늘어나거나 내용이 적을 경우 레이아웃이 이상해진다. 그래서 높이가 고정되는 경우에만 float 속성을 이용한다.
- 하지만 콘텐츠 윗부분은 가지런히 자동으로 맞춰진다.
- 다단 레이아웃을 만들 경우, 자식태그에 float 설정이 되어있다면, 부모 태그의 높이가 사라져버린다. 이 경우 부모 태그에도 float 속성을 부여해야 한다.
*부모 태그에 float 속성을 부여하지 않고 해결하는 방법
- 다른 방법으로 클리어픽스 해결 방법이 있지만, 이는 구형 브라우저를 배려한 해결방법이라는 차이일 뿐 기본적인 구조는 같다.
- overflow를 이용해 해결할 수 있다. overflow 속성은 고정된 요소에서 콘텐츠가 빠져 나왔을 때 어떻게 표시되는지를 지정하기 위한 속성이다.
auto : 스크롤바 표시
scroll: 항상 스크롤바 영역 표시
hidden : 스크롤바도 표시하지 않고 넘치는 콘텐츠도 표시하지 않는다.
visible : 스크롤바를 표시하지 않고 넘치는 콘텐츠를 모두 표시
높이가 없어진 부모 요소에 overflow:hidden; 이라 설정하면 결과적으로 클리어픽스와 같은 표시 상태가 된다.
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
※
'웹 > HTML, CSS' 카테고리의 다른 글
[CSS] transition 및 transform (0) | 2018.07.27 |
---|---|
[HTML,CSS]position 레이아웃 (0) | 2018.05.26 |
[CSS]미디어 쿼리 (0) | 2018.01.23 |
[CSS]그리드 (1) | 2018.01.23 |
[CSS]박스 모델 (0) | 2018.01.22 |
- Total
- Today
- Yesterday
- 파이썬 함수
- 파이썬 연산자
- 파이썬 문자열
- 자바
- 백준
- 파이썬
- 백준 10451
- 파이썬 for
- 파이썬 선택문
- 자바 에센셜 실습문제
- 파이썬 클래스
- 파이썬 예제
- css 박스
- 파이썬 while
- 백준 1874
- 파이썬 터틀
- 명품 c++ 실습
- 파이썬 if문
- 파이썬 리스트
- 자료구조
- 파이썬 단계적 개선
- 백준 11501
- 자바스크립트 자료구조
- 웹
- 파이썬 객체
- 자바스크립트 그래프
- 파이썬 진수 변환
- css
- css 그리드
- 버츄어박스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |