커뮤니티

고용노동부, 산업인력공단과 함께하는 강원도 유일한 기업중심 IT전문교육기관 ICT융합캠퍼스만의 특별한교육입니다.
공인 IT숙련기술인의 다양한 접근방법으로 전문가다운 실무교육을 받을 수 있습니다.

Category

교육강좌

클라이언트 겁나 빠른 웹 레시피 - Holy Grail Layout

페이지 정보

작성자 관리자 댓글 0건 조회 2,867회 작성일 20-06-02 16:38

본문

Holy Grail Layout

소개

Holy Grail은 성배라는 뜻입니다. 성배를 찾기 이해서 많은 사람들이 노력했던 것처럼 Holy garail layout을 구현하기 위해서 많은 사람이 노력했지만 완벽한 결과를 찾지 못했다는 비유가 Holy grail layout입니다. 아래 처럼 생겼습니다. 

 

 

선행학습

이 수업을 듣기 위해서는 아래와 같은 지식이 필요합니다. 

flexbox를 이용한 방법

flex를 이용하면 holy grail layout을 간편하고 우아하게 구현할 수 있습니다. 이 방법은 아쉽게도 ie10이하에서는 완벽하게 지원되지 않습니다. 이 방법을 사용해도 되는지는 통계를 참고하시는 것이 가장 바람직합니다. 

http://caniuse.com/#feat=flexbox

flex를 이용한 holy grail layout은 아래 수업을 참고해주세요. 

https://opentutorials.org/module/2367/13526

기존의 방법

flex는 곧 안심하고 사용할 수 있는 기능이 되겠지만, 사용자의 규모가 큰 웹사이트나 보수적인 사용자들의 많은 서비스의 경우는 ie10 이하의 사용자도 불편함 없이 서비스를 사용하도록 배려하고 싶을 수 있습니다. 이를 위해서 과거의 방법을 소개합니다. 이 수업은 아래 자료를 참고해서 만들었습니다. 

http://alistapart.com/article/holygrail

예제 - holy_grail_layout_legacy.html

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<!doctype html>
<html>
<head>
<style>
.container{
}
*{
box-sizing: border-box;
}
.container{
border:5px solid black;
}
.container>*{
border:5px solid red;
}
.container>.content>*{
border:5px solid green;
}
.container .content{
padding-left:200px;
padding-right:150px;
overflow: hidden;
}
.container .content>*{
float:left;
padding-bottom:2500px;
margin-bottom:-2500px;
}
.container .content main{
width:100%;
}
.container .content nav{
width:200px;
margin-left: -100%;
left:-200px;
position: relative;
}
.container .content aside{
width:150px;
margin-right:-150px;
}
.container footer{
clear: both;
}
@media (max-width:599px){
.container .content{
padding-left:0;
padding-right:0;
overflow: visible;
}
.container .content>*{
float:none;
padding-bottom:0;
margin-bottom:0;
}
.container .content main{
width:100%;
}
.container .content nav{
width:auto;
margin-left: 0;
left:0;
position: relative;
}
.container .content aside{
width:auto;
margin-right:0;
}
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>HEADER</h1>
</header>
<section class="content">
<main>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem facere itaque nisi ipsum voluptate alias, ea vitae nemo, voluptas facilis sunt tenetur harum quos cumque unde aut obcaecati atque modi nobis. Maxime molestias, veritatis alias sapiente quo fugiat provident. Provident totam asperiores laboriosam dignissimos, cupiditate, voluptatum dolore nam repellat architecto minus consequuntur. Officiis magni reprehenderi!
</main>
<nav>
<ul>
<li>item</li>
<li>item</li>
<li>item</li>
</ul>
</nav>
<aside>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ex, possimus
</aside>
</section>
<footer>
FOOTER
</footer>
</div>
</body>
</html>
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

답변목록

등록된 답변이 없습니다.