벌써 4주차 학습까지 끝났다~~
CSS 까지 완료하여 진도 34% 까지 올렸다.
프로그래밍 첫걸음 이미지에 있는 언어 5개 중에서 두 번째까지 수료했다.
이번 CSS 파트도 순수 강의 영상은 1시간 정도였다.
과제까지 하려고 1~2시간 더 잡았다
CSS는 기존에 밋밋한 HTML 화면을 꾸며주는 역할을 해준다.
더 자세히 정리해보자.
4주차 진도에서는
- 01. [CSS] CSS 기초
- 02. [CSS] CSS 선택자
- 과제1. 특정 자식 요소 접근하기
- 03. [CSS] CSS 스타일
- 과제2. 폰트 다운받고 불러오기
- 04. [CSS] CSS 스타일 활용
- 과제3. Background Image 사용해보기
- 05. [CSS] Bootstrap 맛보기
- 과제4. 부트스트랩으로 소개 화면 설계 변경하기
01. [CSS] CSS 기초
- 엘리먼트 단위로 지정
- 웹 페이지 단위로 지정
- 웹 사이트 단위로 지정
1 2 3 4 5 6 7 | <style> element { // CSS 코드 } </style> | 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 | <!doctype html> <html> <head> <meta charset="utf-8"> <title>제목</title> <style> h1 { color: blue; } p { color: red; } </style> </head> <body> <h1>제목 태그입니다.</h1> <h1>제목 태그입니다.</h1> <p>문단 태그입니다.</p> <p>문단 태그입니다.</p> </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 34 35 | <!doctype html> <html> <head> <meta charset="utf-8"> <title>제목</title> <style> h1 { color: blue; } p { color: red; } #fast { color: powderblue } .campus { color: yellow; } </style> </head> <body> <h1 id="fast">제목 태그입니다.</h1> <h1>제목 태그입니다.</h1> <p class="campus">문단 태그입니다.</p> <p>문단 태그입니다.</p> </body> </html> | cs |
- 'CSS'는 웹페이지의 스타일 전용 언어이다.
- 웹 페이지의 CSS 스타일을 적용하는 방법은 크게 '3' 가지가 있다.
- 'style' 태그는 head 태그에 작성하며 스타일 적용을 위한 태그다.
- id 속성으로 요소를 선택하기 위해선 '#' 기호를 사용한다.
- class 속성으로 요소를 선택하기 위해선 '.' 기호를 사용한다.
02. [CSS] CSS 선택자
이런 관계들로 CSS 에서도 요소를 선택 할수 있다.
- 자손(Descendent) 선택자
- 자식(Child) 선택자
- 인접 형제(Adjacent Sibling) 선택자
- 일반 형제(General Sibling) 선택자
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 | <!doctype html> <html> <head> <meta charset="utf-8"> <title>제목</title> <style> div#test1 p { color: red; } div#test2 > p { color: red; } div#test3 p#p1 + p { color: red; } div#test4 p#p1 ~ p { color: red; } </style> </head> <body> <div id="test1"> <p>문단 태그입니다.</p> <div> <p>문단 태그입니다.</p> </div> </div> <hr> <div id="test2"> <p>문단 태그입니다.</p> <div> <p>문단 태그입니다.</p> </div> </div> <hr> <div id="test3"> <p>문단 태그입니다.</p> <p>문단 태그입니다.</p> <p id="p1">문단 태그입니다.</p> <p>문단 태그입니다.</p> <p>문단 태그입니다.</p> </div> <hr> <div id="test4"> <p>문단 태그입니다.</p> <p>문단 태그입니다.</p> <p id="p1">문단 태그입니다.</p> <p>문단 태그입니다.</p> <p>문단 태그입니다.</p> </div> </body> </html> | cs |
첫 번째 test1 에서는 모든 자손 p 태그가 선택이 됐다.
두 번째 test2 에서는 바로 아래 자식에 있는 p 태그만 선택이 됐다.
세 번째 test3 에서는 p1 아이디를 갖고 있는 p 태그에 바로 뒤에 있는 요소가 선택이 됐다.
네 번째 test4 에서는 test3과는 달리 뒤에 있는 모든 요소들이 선택이 된 것을 확인할 수 있다.
[ QUIZ ]
- CSS '선택자' 문법은 엘리먼트의 관계로 대상을 선택하는 방법이다.
- 자손 선택자는 선택자 ' ' 선택자 형태로 작성한다.
- 자식 선택자는 선택자 ' > ' 선택자 형태로 작성한다.
- 인접 형제 선택자는 선택자 ' + ' 선택자 형태로 작성한다.
- 일반 형제 선택자는 선택자 ' ~ ' 선택자 형태로 작성한다.
과제1. 특정 자식 요소 접근하기
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 | <!doctype html> <html> <head> <meta charset="utf-8"> <title>선택자 문법 사용하기</title> <style> p#p_tag ~ p { color: red; } table.table > thead th { color: red; } table.table > tbody > tr { color: blue; } table.table > tbody > tr + tr { color: yellow; } </style> </head> <body> <div> <h1>제목</h1> <div> <p id="p_tag">문단</p> <p>문단</p> </div> <div> <table class="table"> <thead> <tr> <th>제목1</th> <th>제목2</th> </tr> </thead> <tbody> <tr> <td>본문1</td> <td>본문2</td> </tr> <tr> <td>본문3</td> <td>본문4</td> </tr> </tbody> </table> </div> </div> </body> </html> | cs |
제목1, 제목2 까지는 할만 했는데,
본문1, 본문2와 본문3, 본문4를 따로 선택하는 방법이 어려웠다.
본문 1, 본문 2를 먼저 선택한 다음에
인접 형제 선택자로 바로 그 뒤에 있는 본문 3, 본문 4를 선택해서 변경했다.
03. [CSS] CSS 스타일
CSS 박스 모델은 위 사진으로 정리할 수 있다.
border은 콘텐츠를 감싸는 테두리다. padding 은 콘텐츠와 border 사이를 뜻한다.
margin은 border 바깥 영역을 의미한다.
각 border, padding, margin은 left, right, bottom, top 영역을 따로따로 설정할 수 있다.
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 | <!doctype html> <html> <head> <meta charset="utf-8"> <title>선택자 문법 사용하기</title> <style> p, strong { color: red; border: 10px solid; padding: 5px; margin: 100px; width: 100px; height: 100px; margin-top: 20px; } </style> </head> <body> <p>문단 태그입니다.</p> <p>문단 태그입니다.</p> <p>문단 태그입니다.</p> <strong>강조 태그입니다.</strong> </body> </html> | cs |
- 'width' 은 요소의 콘텐츠 너비에 해당하는 속성값이다.
- height 속성은 '콘텐츠 높이'에 해당하는 속성값이다.
- 'padding' 은 콘텐츠와 테두리간의 간격을 나타낸다.
- 인라인 요소는 '너비'와 '높이' 속성을 가질 수 없다.
- 'margin' 은 엘리먼트와 엘리먼트간 간격을 나타낸다.
과제2. 폰트 다운받고 불러오기
Noto Sans KR 폰트를 선택해 보았다. 오른쪽 위에 + 버튼으로 목록에 추가할 수 있다.
Embed font 에서 HTML 코드를 복사하여 <head></head> 태그 안에 붙여넣는다.
그리고 적용하고 싶은 태그에 font-family 속성으로 외부에서 다운로드 받은 폰트를 적용할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <!doctype html> <html> <head> <meta charset="utf-8"> <title>폰트 적용하기</title> <link href="https://fonts.googleapis.com/css?family=Noto+Sans+KR" rel="stylesheet"> <style> h1, p{ font-family: 'Noto Sans KR', sans-serif; } </style> </head> <body> <h1>패스트캠퍼스</h1> <p>FastCampus</p> <p>12345</p> </body> </html> | cs |
1 2 3 4 5 6 7 8 9 | <style> h1, p{ font-family: 'Noto Sans KR', sans-serif; } h2 { font-family: 'Times New Roman', serif; } </style> | cs |
1 2 3 4 | <h1>패스트캠퍼스</h1> <h2>FastCampus</h1> <p>FastCampus</p> <p>12345</p> | cs |
serif 체는 글자 끝에 꾸밈이 들어간 것을 확인할 수 있다. 반면에 sans-serif 체는 그런 꾸밈이 없는 것을 확인할 수 있다!
04. [CSS] CSS 스타일 활용
1 | <link rel="stylesheet" type="text/css" href="css/index.css"> | cs |
1 2 3 | p { color: red; } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!doctype html> <html> <head> <meta charset="utf-8"> <title>폰트 적용하기</title> <link rel="stylesheet" type="text/css" href="css/index.css"> </head> <body> <div> <p>문단 태그 입니다.</p> <p style="color: black;">문단 태그 입니다.</p> <p>문단 태그 입니다.</p> </div> </body> </html> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 | @charset "utf-8"; div { color: red; font-size: 25px; font-style: italic; border: 5px solid red; padding: 50px; margin: 10px; width: 500px; height: 250px; } | cs |
- 'link' 태그를 통해 외부 CSS 파일을 불러올 수 있다.
- '엘리먼트' 단위로 작성한 CSS 코드가 우선순위를 갖는다.
- '박스 모델'과 관련된 속성은 스타일 상속이 이루어지지 않는다.
과제3. Background Image 사용해보기
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 | @charset "utf-8"; body { background-image: url("http://i.imgur.com/01WQMnV.jpg"); background-repeat: no-repeat; background-position: center; background-attachment: fixed; background-size: 100% 100%; } .bg { background-color: rgba(0, 0, 0, 0.5); width: 100%; height: 100%; position: absolute; left: 0; top: 0; z-index: -1; } .div1 { margin-left: auto; margin-right: auto; margin-top: 300px; border: 2px solid white; padding: 50px; width: 250px; text-align: center; } a { font-size: 32px; text-decoration: none; } a:link { color: white; } a:hover { color: white; } a:visited { color: white; } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!doctype html> <html> <head> <meta charset="utf-8"> <title>폰트 적용하기</title> <link rel="stylesheet" type="text/css" href="css/index.css"> </head> <body> <div class="bg"></div> <div class="div1"> <a href="https://www.fastcampus.co.kr">패스트 캠퍼스</a> </div> </body> </html> | cs |
배경 이미지 위에 투명한 검은색을 입히려고 div 태그에 background 색을 지정했다.
position 속성을 absolute 속성을 줘 left, top, width, height 속성으로 크기와 위치를 조절했다.
z-index 속성으로 다른 엘리먼트 태그와의 레이어를 제일 아래로 위치시켰다.
Background Image 과제 성공!
05. [CSS] Bootstrap 맛보기
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 | <!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>폰트 적용하기</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> </head> <body> <div class="bg"></div> <div class="container"> <h1>다람쥐 입니다.</h1> <ul class="nav nav-tabs"> <li class="nav-item"><a class="nav-link active" href="#">홈</a></li> <li class="nav-item"><a class="nav-link" href="#">내정보</a></li> <li class="nav-item"><a class="nav-link" href="#">내정보</a></li> <li class="nav-item"><a class="nav-link" href="#">내정보</a></li> </ul> <div> <table class="table table-bordered"> <thead> <tr> <th>강의명</th> <th>날짜</th> </tr> </thead> <tbody> <tr> <td>HTML</td> <td>2018-01-01</td> </tr> <tr> <td>HTML</td> <td>2018-01-01</td> </tr> <tr> <td>HTML</td> <td>2018-01-01</td> </tr> </tbody> </table> </div> </div> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> </body> </html> | cs |
과제4. 부트스트랩으로 소개 화면 설계 변경하기
배경 색이 안바뀌어서 약간 해맸다. 알고보니 타이핑 오류가 Visual Studio Code 포맷팅에 가려 안보였던 것이다.
1 2 3 4 5 | html, body { height: 100%; background-color: #333; } | cs |
왜 VS Code 내부에서 이런 오류가 나타나는지는 모르겠지만 ..
다시 코드를 작성하여 해결했다.
이번 진도는 개인적으로 눈이 즐거웠다(?)
직접 웹 페이지를 꾸며볼 수 있어서 새로웠고
CSS 속성도 검색해서 찾아보는 습관을 기르게 됐다.
그리고 부트스트랩 프레임워크를 실습해보기도 하고 공식 문서를 찾아
여러가지 재밌는 기능도 실습했다.
'자유 > 대외 활동' 카테고리의 다른 글
패스트캠퍼스 프로그래밍첫걸음 학습후기 ) #8.6주차 학습후기, 학습진도 50% 달성! (0) | 2019.05.05 |
---|---|
패스트캠퍼스 프로그래밍첫걸음 학습후기 ) #7.5주차 학습후기 (0) | 2019.05.04 |
패스트캠퍼스 프로그래밍첫걸음 학습후기 ) #5.3주차 학습후기 (0) | 2019.04.24 |
패스트캠퍼스 프로그래밍첫걸음 학습후기 ) #4.2주차 학습후기 (0) | 2019.04.20 |
패스트캠퍼스 프로그래밍첫걸음 학습후기 ) #3. 생활코딩! HTML+CSS+JAVASCRIPT 도서 수령 (0) | 2019.04.15 |
댓글