본문 바로가기

Programming/국비학원

220622 - 그리드, 웹페이지 구현

  • flex 구현 페이지
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>플렉스 페이지</title>
    <style>
        #wrap{
            width: 100%;
        }
        header{
            width: 100%;  /*부모의 100%*/
        }
        header h1 {
            font-size: 3em;
            text-align: center;
        }
        #items {
            width: 100%;
        }
        #items>div{
            position: relative;
            height: 400px;
            border: 1px solid black;
            margin-bottom: 15px;
        }
        .menu1, .menu2, .menu3, .menu4, .menu5 {
            width: 100%; /*모바일에서 각각 너비 채우도록*/
        }
        #items h2 {
            position: absolute;
            padding: 5px;
            font-size: 2em;
            color: #fff;
            text-shadow: 3px 3px 5px black;
            right: 3%;
            bottom: 10px; /*반응형 웹에서는 height보다 width가 중요*/
        }
        .menu1{
            background: url(images/dish1.jpg) no-repeat center;
            background-size: cover;
        }
        .menu2{
            background: url(images/dish2.jpg) no-repeat center;
            background-size: cover;
        }
        .menu3{
            background: url(images/dish3.jpg) no-repeat center;
            background-size: cover;
        }
        .menu4{
            background: url(images/dish4.jpg) no-repeat center;
            background-size: cover;
        }
        .menu5{
            background: url(images/dish5.jpg) no-repeat center;
            background-size: cover;
        }
        footer{
            width: 100%;
            background-color: #333;
            height: 200px;
        }
        footer p{
            font-size: 1.2em;
            color: #fff;
            text-align: center;
            line-height: 200px;
        }
        @media screen and (min-width:768px) { /* and 주변 띄어쓰기 필수  태블릿*/
            #items{
                display: flex;
                flex-wrap: wrap;
            }
            .menu1, .menu2, .menu3, .menu4 {
                width: 49%;
            }
            .menu5{
                width:100%;
            }
        }
        @media screen and (min-width:1024px) { /*PC*/
            #items>div{
                width: 33%;
            }
            .menu5{
                margin-left: 0.5%;
                flex: 2 2 0;
            }
        }
    </style>
</head>
<body>
    <div id="wrap">
        <header>
            <h1>솔로의 식탁</h1>
        </header>
        <section id="items">
            <div class="menu1">
                <h2>밥/죽</h2>
            </div>
            <div class="menu2">
                <h2>국/찌개</h2>
            </div>
            <div class="menu3">
                <h2>반찬</h2>
            </div>
            <div class="menu4">
                <h2>일품요리</h2>
            </div>
            <div class="menu5">
                <h2>음료/칵테일</h2>
            </div>
        </section>
        <footer>
            <p>&copy; 2022 솔로.com</p>
        </footer>
    </div>
</body>
cs

 

 

 

 

그리드 레이아웃

: 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
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>그리드 레이아웃</title>
    <style>
        #wrap{
            display: grid;
            grid-template-columns: 30% 70%;  /*그리드 열 너비*/
            grid-template-rows: 150px 400px 150px;  /*그리드 행 높이*/
        }
        #wrap div {
            margin: 2px;
            padding: 10px;
        }
        .grid1{
            grid-column-start: 1;  /*열 경계선 (1~2~3)*/
            grid-column-end: 3;
            background-color: rgb(199, 242, 242);
        }
        .grid2{
            grid-column-start: 1;
            grid-column-end: 2;
            background-color: rgb(255, 220, 154);
        }
        .grid3{
            grid-column-start: 2;
            grid-column-end: 3;
            background-color: rgb(226, 255, 167);
        }
        .grid4{
            grid-column-start: 1;
            grid-column-end: 3;
            background-color: rgb(160, 160, 255);
        }
    </style>
</head>
<body>
    <div id="wrap">
        <div class="grid1">
            <h1>header</h1>
        </div>
        <div class="grid2">
            <h1>sideMenu</h1>
        </div>
        <div class="grid3">
            <h1>content</h1>
        </div>
        <div class="grid4">
            <h1>footer</h1>
        </div>
    </div>
</body>
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
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
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>그리드 레이아웃 영역 설정</title>
    <style>
        #area{
            width: 700px;
            display: grid;
            grid-template-columns: 40% 30% 30%;
            grid-template-rows: 100px 100px 100px;
        }
        #area div {
            margin: 2px;
            padding: 10px;
        }
        .grid1{
            grid-column-start: 1;
            grid-column-end: 3;
            background-color: rgb(199, 242, 242);
 
        }
        .grid2{
            grid-column-start: 3;
            grid-column-end: 4;
            background-color: rgb(198, 236, 154);
 
        }
        .grid3{  /*행,열 2개 이상 차지*/
            grid-column-start: 1;
            grid-column-end: 2;
            grid-row-start: 2;
            grid-row-end: 4;
            background-color: rgb(255, 114, 114);
 
        }
        .grid4{
            grid-column-start: 2;
            grid-column-end: 4;
            background-color: rgb(163, 139, 250);
 
        }
        .grid5{
            grid-column-start: 2;
            grid-column-end: 3;
            background-color: rgb(249, 213, 255);
 
        }
        .grid6{
            grid-column-start: 3;
            grid-column-end: 4;
            background-color: rgb(161, 255, 194);
 
        }
    </style>
</head>
<body>
    <div id="area">
        <div class="grid1">그리드1</div>
        <div class="grid2">그리드2</div>
        <div class="grid3">그리드3</div>
        <div class="grid4">그리드4</div>
        <div class="grid5">그리드5</div>
        <div class="grid6">그리드6</div>
    </div>
</body>
cs

 

 

 

웹페이지 구현 실습

웹 접근성, 웹 표준 준수
상위 영역 id / 세부 영역 class

 

 

 

 

  • index.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
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="author" content="hk">  <!-- 제작자 정보 -->
    <meta name="keywords" content="webcafe, 웹접근성">  <!-- 페이지 키워드 -->
    <meta name="description" content="html5 css3 소개">  <!-- 페이지 설명 -->
    <meta name="robots" content="all">
    <link rel="shortcut icon" href="images/common/webcafe.ico">
    <title>webcafe</title>
    <link rel="stylesheet" href="css/normalize.css">
    <link rel="stylesheet" href="css/index.css">
    <link rel="stylesheet" href="css/common.css">
</head>
<body>
    <!-- 건너뛰기 링크 시작 -->
    <a id="skipNav" href="#">본문 바로가기</a>
    <!-- 건너뛰기 링크 종료 -->
    <!-- wrapper 영역 시작 -->
    <div id="wrapper">
        <!-- 헤더 영역 시작 (로고, 메인메뉴) -->
        <header>
 
        </header>
        <!-- 헤더 영역 종료 -->
        <!-- 비주얼 영역 시작 (이미지)-->
        <div id="visual">
 
        </div>
        <!-- 비주얼 영역 종료 -->
        <!-- 메인 콘텐츠 영역 시작 -->
        <div id="contentsArea">
            <!-- 로그인/배너/용어설명 시작 -->
            <div id="uesfulArea">
 
            </div>
            <!-- 로그인/배너/용어설명 종료 -->
            <!-- 검색폼/공지사항/자료실/새소식 시작 -->
            <div id="infoArea">
 
            </div>
            <!-- 검색폼/공지사항/자료실/새소식 종료 -->
            <!-- 신규이벤트/관련사이트/인기사이트 시작 -->
            <div id="linkArea">
 
            </div>
            <!-- 신규이벤트/관련사이트/인기사이트 종료 -->                        
        </div>
        <!-- 메인 콘텐츠 영역 종료 -->
        <!-- 슬로건 영역 시작 -->
        <div id="slogan">
 
        </div>
        <!-- 슬로건 영역 종료 -->
        <!-- 푸터 영역 시작 -->
        <footer>
 
        </footer>
        <!-- 푸터 영역 종료 -->
    </div>
    <!-- wrapper 영역 종료 -->
</body>
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
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="author" content="hk">  <!-- 제작자 정보 -->
    <meta name="keywords" content="webcafe, 웹접근성">  <!-- 페이지 키워드 -->
    <meta name="description" content="html5 css3 소개">  <!-- 페이지 설명 -->
    <meta name="robots" content="all">
    <link rel="shortcut icon" href="images/common/webcafe.ico">
    <title>webcafe</title>
    <link rel="stylesheet" href="css/normalize.css">
    <link rel="stylesheet" href="css/index.css">
    <link rel="stylesheet" href="css/common.css">
</head>
<body>
    <!-- 건너뛰기 링크 시작 -->
    <a id="skipNav" href="#">본문 바로가기</a>
    <!-- 건너뛰기 링크 종료 -->
 
    <!-- wrapper 영역 시작 -->
    <div id="wrapper">
        <!-- 헤더 영역 시작 (로고, 메인메뉴) -->
        <header>
            <h1 class="logo">
                <a href="index.html">
                    <img src="images/logo.png" alt="">
                </a>
            </h1>
            <ul class="infoLink">
                <li><a href="index.html"></a></li> <!-- 링크 모음이므로 nav 이용 X -->
                <li><a href="#">로그인</a></li> 
                <li><a href="join.html">회원가입</a></li>
                <li><a href="#">사이트맵</a></li>
                <li><a href="#">ENGLISH</a></li>
            </ul>
            <nav role="navigation"> <!-- role: (웹 접근성) 구조 정보 전달 -->
                <h2 class="hidden">메인 메뉴</h2>  <!-- hidden 클래스 모두 숨기기 예정 -->
                <ul class="mainMenu">
                    <li><a href="#">HTML에 대해</a>
                        <ul class="aboutHTML">
                            <li><a href="#">HTML5 소개</a></li>
                            <li><a href="#">레퍼런스 소개</a></li>
                            <li><a href="#">활용 예제</a></li>
                        </ul>
                    </li>
                    <li><a href="#">CSS에 대해</a>
                        <ul class="aboutCSS">
                            <li><a href="#">CSS 소개</a></li>
                            <li><a href="#">CSS2 VS CSS3</a></li>
                            <li><a href="#">CSS 애니메이션</a></li>
                            <li><a href="#">CSS Framework</a></li>
                        </ul>                    
                    </li>
                    <li><a href="#">웹 표준</a>
                        <ul class="webStandard">
                            <li><a href="#">웹 표준이란</a></li>
                            <li><a href="#">W3C</a></li>
                            <li><a href="#">HTML5의 현재와 미래</a></li>
                        </ul>                    
                    </li>
                    <li><a href="#">웹 접근성</a>
                        <ul class="webAccessibility">
                            <li><a href="#">웹 접근성의 개요</a></li>
                            <li><a href="#">장애 환경의 이해</a></li>
                            <li><a href="#">장차법</a></li>
                            <li><a href="#">웹 접근성 품질마크</a></li>
                        </ul>                    
                    </li>
                    <li><a href="#">묻고 답하기</a>
                        <ul class="qna">
                            <li><a href="#">묻고 답하기</a></li>
                            <li><a href="#">FAQ</a></li>
                            <li><a href="#">1대1 질문</a></li>
                            <li><a href="#">웹표준</a></li>
                            <li><a href="#">웹접근성</a></li>
                        </ul>                    
                    </li>
                    <li><a href="#">자료실</a>
                        <ul class="archive">
                            <li><a href="#">공개 자료실</a></li>
                            <li><a href="#">이미지 자료실</a></li>
                            <li><a href="#">웹표준 자료실</a></li>
                            <li><a href="#">웹접근성 자료실</a></li>
                        </ul>                    
                    </li>
                </ul>
            </nav>
        </header>
        <!-- 헤더 영역 종료 -->
 
        <!-- 비주얼 영역 시작 (이미지)-->
        <div id="visual">
            <p>Web Standard &amp; Accessibility</p>
        </div>
        <!-- 비주얼 영역 종료 -->
 
        <!-- 메인 콘텐츠 영역 시작 -->
        <div id="contentsArea">
            <!-- 로그인/배너/용어설명 시작 -->
            <div id="uesfulArea">
                <section class="login">
                    <h2>로그인</h2>
                    <form action="login.jsp" method="post" id="loginForm" name="loginForm">  
<!-- 서버로 전송할 파일 -->
                        <fieldset>
                            <legend>회원 로그인 폼</legend>  <!-- 숨기기 예정 -->
                            <p>
                                <label for="userId">아이디</label>
                                <input type="text" id="userId" name="userId" 
placeholder="Guest" required>
                            </p>
                            <p>
                                <label for="userPw">비밀번호</label>
                                <input type="text" id="userPw" name="userPw" 
placeholder="4자이상 8자이하" required>
                            </p>
                            <button type="submit">로그인</button> 
<!-- 디자인 위해 input 대신 button -->
                        </fieldset>
                    </form>
                    <div class="memberLink">
                        <a href="join.html" class="join">회원가입</a>
                        <a href="#" class="find">아이디/비밀번호 찾기</a>
                    </div>
                </section>
 
                <section class="validation">
                    <h2 class="hidden">유효성 검사</h2>
                    <ul >
                        <li>
                            <a href="http://validator.w3.org" 
title="마크업 유효성 검사 사이트로 이동" target="_blank">
                                W3C Markup Validation</a>
                        </li>
                        <li>
                            <a href="http://jigsaw.w3.org/css-validator/"
                            title="CSS 유효성 검사 사이트로 이동" target="_blank">
                            W3C CSS Validation Service</a>
                        </li>
                    </ul>
                </section>
 
                <section class="term">
                    <h2>웹 관련 용어</h2>
                    <a href="#"> <!-- 내용 전체 링크 -->
                        <dl>
                            <dt>웹 표준이란?</dt>
                            <dd><img src="images/web_standards.gif" alt="W3C로고" 
width="61" height="68"></dd>
                            <dd>W3C 단체에서 규정한 웹 기술 사양에 대한 규칙을 말하며
                                표준 규격은..
                            </dd>
                        </dl>
                    </a>
                </section>     
            </div>
            <!-- 로그인/배너/용어설명 종료 -->
 
            <!-- 검색폼/공지사항/자료실/새소식 시작 -->
            <div id="infoArea">
                <section class="search">
                    <h2 class="hidden">웹 카페 검색</h2>
                    <form action="search.jsp" method="get" id="searchForm" name="searchForm">
                        <fieldset>
                            <legend>검색 폼</legend>
                            <label for="keyword">자료 검색</label>
                            <input type="search" id= "keyword" name="keyword" 
placeholder="검색어를 입력하세요" required>
                            <button type="submit">검색</button>
                        </fieldset>
                    </form>
                </section>
 
                <div class="board">
                    <section id="notice">
                        <h2><a href="#notice">공지사항</a></h2>
                        <ul>
                            <li>
                                <a href="#">HTML의 모든 것을 알려주마 샘플 활용법</a>
                                <time datetime = "2013-10-04">2013.10.04</time>
                            </li>
                            <li>
                                <a href="#">W3C 사이트 리뉴얼 소식 및 공지사항</a>
                                <time datetime = "2013-10-04">2013.10.04</time>
                            </li>
                            <li>
                                <a href="#">KWCAG2.0 소식</a>
                                <time datetime = "2013-10-04">2013.10.04</time>
                            </li>
                            <li>
                                <a href="#">서버 점검으로 인한 사이트 이용 안내입니다.</a>
                                <time datetime = "2013-10-04">2013.10.04</time>
                            </li>
                            <li>
                                <a href="#">여러분들이 생각하는 웹 접근성에 대해 
이야기를 나누어 봅시다.</a>
                                <time datetime = "2013-10-04">2013.10.04</time>
                            </li>
                        </ul>
                        <a href="#" class="more" title="공지사항 더보기">더보기</a>
                    </section>
                    <section id="pds">
                        <h2><a href="#pds">자료실</a></h2>
                        <ul>
                            <li>
                                <a href="#">디자인 사이트 링크 모음</a>
                                <time datetime = "2013-10-04">2013.10.04</time>
                            </li>
                            <li>
                                <a href="#">웹 접근성 관련 자료 모음</a>
                                <time datetime = "2013-10-04">2013.10.04</time>
                            </li>
                            <li>
                                <a href="#">예제 샘플 응용해보기</a>
                                <time datetime = "2013-10-04">2013.10.04</time>
                            </li>
                            <li>
                                <a href="#">웹 접근성 향상을 위한 국가 표준 기술 가이드라인</a>
                                <time datetime = "2013-10-04">2013.10.04</time>
                            </li>
                            <li>
                                <a href="#">로약티 프리 이미지 자료</a>
                                <time datetime = "2013-10-04">2013.10.04</time>
                            </li>
                        </ul>
                        <a href="#" class="more" title="자료실 더보기">더보기</a>
                    </section>
                </div>
 
                <section class="news">
                    <h2>새소식</h2>
                    <article>
                        <a href="#">
                            <h3>W3C 사이트가 리뉴얼되었습니다.</h3>
                            <time datetime="2013-10-04">2013.10.04</time>
                            <p>디자인 및 다양한 view 환경을 고려하여 구성돼 있으며
                               기존보다 최신 정보 및 개발자를 위한 가이드도 찾기 쉽도록
 구성되어 있습니다.
                            </p>
                            <figure>
                                <img src="images/news.gif" alt="news" width="112" height="66">
                                <figcaption>W3C 리뉴얼</figcaption>
                            </figure>
                        </a>
                    </article>
                    <a href="#" class="more" title="새소식 더보기">더보기</a>
                </section>
            </div>
            <!-- 검색폼/공지사항/자료실/새소식 종료 -->
 
            <!-- 신규이벤트/관련사이트/인기사이트 시작 -->
            <div id="linkArea">
                <section class="event">
                    <h2>신규<span>이벤트</span></h2>
                    <div id="eventDetail">
                        <a href="">
                            <img src="images/free_gift.gif" 
alt="이벤트 경품: 웹표준 핵심 가이드 북 2"
                            width="163" height="77">
                            <p><em>웹표준 핵심 가이드북 2 출시</em>선착순 400명 한정!</p>
                        </a>
                    </div>
                    <div class="btnEventArea">
                        <a href="#" class="btnEventPrev">이전 이벤트보기</a>
                        <a href="#" class="btnEventNext">다음 이벤트보기</a>
                    </div>
                </section>
 
                <section class="relatedLink">
                    <h2>관련<span>사이트</span></h2>
                    <ul>
                        <li><a href="http://jeumedia.com">제우미디어</a></li>
                        <li><a href="http://www.w3c.org">W3C</a></li>
                        <li><a href="http://www.csszengarden.com">CSS ZEN GARDEN</a></li>
                        <li><a href="http://www.webstandards.org">WEB STANDARD</a></li>
                        <li><a href="http://www.wah.or.kr">웹 접근성 연구소</a></li>
                    </ul>
                </section>
            </div>
            <!-- 신규이벤트/관련사이트/인기사이트 종료 -->                        
        </div>
        <!-- 메인 콘텐츠 영역 종료 -->
 
        <!-- 슬로건 영역 시작 -->
        <div id="slogan">
 
        </div>
        <!-- 슬로건 영역 종료 -->
 
        <!-- 푸터 영역 시작 -->
        <footer>
 
        </footer>
        <!-- 푸터 영역 종료 -->
    </div>
    <!-- wrapper 영역 종료 -->
</body>
cs