저는 비전공자이며 이전에 인터넷에 돌아다니는 자료로 독학을 따로 했습니다.
목표는 프론트 엔드 개발자로서 거듭나기 위해 부트캠프를 목표하고 있으며 기본기를 다지기 위해 본 강의를 수강하게 되었습니다. 따라서, 저만의 방법으로 정리하고 기재하였으니 참고하되 너무 믿지 말아주세요.
프론트 엔드에 필요한 HTML, CSS, JS, React를 배울 수 있는 다른 K디지털기초역량훈련을 보면서 가장 코스가 마음에 듦
프로젝트를 2개할 수 있음
8주 과정이기에 실습 멘토링 또는 커리어 멘토링(각각 30분씩)을 총 4개 받아서 사용할 수 있음
그러나, 모든 사람들이 접근할 수 있는 게시물이기에 그리고 내돈내산(국비로 진행하지만.....)으로 하는 과정이기에 불편한점 좋은 점 모두 솔직히 이야기 할 예정
VS code에서
웹에서 사용하는 이미지는 총 2가지 타입
비트맵: 정교하고 다양한 색상 출력 가능, 그러나 확대 및 축소 화질 저하
벡터(svg): 확대 및 축소 화질 변화 X, 선 점 면을 활용하여 단순구조 아이콘, 로고 등(메터리얼 이미지)
오픈소스 라이선스: 자유롭게 이용할 수 있되 상업적 용도가 금지인 경우가 있으니 항상 라이선스를 확인하는 습관이 있어야 함
DOCTYPE 뒤에 HTML의 코드를 지정
html: 시작과 종료 태그 안의 것은 모두 해석
head: 문서의 보이지 않는 정보를 나타내는 범위
웹페이지 제목, 설명, 사용할 파일 위치, 스타일(CSS)
body: 문서의 보여지는 구조를 나타내는 범위
부모와 자식 관계:
<div> <!--이 아래부터는 하위 및 후손 요소 -->
<div> <!--부모, 이 위부터 상위 및 조상 요소-->
<div> <!--자식-->
</div>
</div>
</div>
<span>hello</span>
<span>world</span>
(출력) hello world
(불가능)<span><div></div></span>
<p><span>동해물</span>과 백두산이</p>
<img src=”” alt =””>
<a href=”주소” target=”_blank”>”이름”</a>
<!-- target=”_blank”는 새로운 탭에서 열기 -->
<div>hello</div>
<div>world</div>
(출력)
hello
world
<ul>
<li>딸기</li>
<li>사과</li>
<li>바나나</li>
<li>참외</li>
</ul>
<input type=”text” value=”default 값” placeholder=”입력할 값의 힌트” />
<!--
- type 뒤에 따라 오는 추가 옵션들
- value에는 미리 입력되어 있을 값을 기재
- placeholder에는 사용자가 입력할 힌트 입력
- disabled: 입력 요소 비활성화
-->
<label> <input type=”checkbox” /> Apple</label>
<!-- 흔히 아는 체크박스 -->
<label><input type="radio"> Apple</label>
<label><input type="radio"> Banana</label>
<!-- 체크박스지만 택1만 가능 -->
<table>
<tr>
<td>A</td><td>B</td>
</tr>
<tr>
<td>C</td><td>D</td>
</tr>
</table>
<!-- <tr>은 행, <td>는 열 또는 셀을 작성 -->
<태그 title=”설명”></태그>
요소에 정보나 설명을 지정<태그 style=”스타일”></태그>
요소에 적용할 스타일을 직접 지정<태그 class=”이름”></태그>
요소를 지칭하는 중복 가능한 이름<태그 id=”이름”></태그>
요소를 지칭하는 고유 이름<태그 data-이름=”데이터”></태그>
요소에 데이터를 저장, 많은 경우 JS를 사용<!--HTML-->
<div data-fruit-name="apple">사과</div>
<div data-fruit-name="banana">바나나</div>
// JS
// 위의 있는 fuit-name을 콘솔 창에 기재
const els = document.querySelectorAll('div')
els.forEach(el => { console.log(el.dataset.fruitName)
})
div {
color: blue;
widht: 200px;
height: 200px;
}
내장: html head 부분에 작성
<style>
div {
color: red;
>
</style>
인라인 방식
<div style="color: red; margin: 20px"></div>
링크 방식(병렬)
<link rel="stylesheet" href="./main.css">
@import 방식 (직력)
/*main.css 파일*/
/*연결 형태: html <-- main.css <-- box.css*/
@import url("./box.css")
div {
color: red;
}
/*모든 단어를 빨간색*/
*{
color: red;
}
li {
color: red;
}
/* <li class="oragne">오렌지<li> */
.orange {
color: red;
}
/*<li id="orange" class="oragne">오렌지<li>*/
#orange {
color: red;
}
위 선택자를 복합적으로 사용
/* <span class="orange">오렌지</span> */
/* 태그와 클래스 선택자 둘다 사용*/
span.orange {
color: red;
}
/*
<ul>
<li>사과</li>
<li class="orange">오렌지</li>
</ul>
*/
ul > .orange {
color: red;
}
/*
<div>
<ul>
<li>사과</li>
<li class="orange">오렌지</li>
</ul>
<span class="orange">오렌지</span>
</div>
*/
ul .orange {
color: red;
}
/*
<div>
<ul>
<li>사과</li>
<li class="orange">오렌지</li>
<li>망고</li>
<li>사과</li>
</ul>
*/
.orange + li {
color: red;
}
/*망고만 색칠*/
/*
<div>
<ul>
<li>사과</li>
<li class="orange">오렌지</li>
<li>망고</li>
<li>사과</li>
</ul>
*/
.orange ~ li {
color: red;
}
/*망고와 사과 두 개 색칠*/
어떤 행동을 했을 때 적용되는 클래스
.box:hover {
width: 300px;
background-color: blue;
}
.box:active {
width: 300px;
background-color: blue;
}
/*특히 input요소가 있을 때*/
.box:focus {
width: 300px;
background-color: blue;
}
/*input요소가 아닌 것에도 부여할 때 tabindex를 기재*/
<div class="box" tabindex="-1"></div>
.box:active {
width: 300px;
background-color: blue;
}
/*
<div class="fruits">
<span>딸기</span>
<span>수박</span>
<div>
<p>망고</p>
<h3>사과</h3>
</div>
</div>
*/
/*딸기 색칠*/
.furits span:first-child {
color: red;
}
/*없음*/
.furits div:first-child {
color: red;
}
/*
<div class="fruits">
<span>딸기</span>
<span>수박</span>
<div>오렌지</div>
<p>망고</p>
<h3>사과</h3>
</div>
*/
/*사과 색칠*/
.furits h3:last-child {
color: red;
}
6.nth-child(abd:nth-child); 몇 번째에 있는 요소를 선택
/*<div class="fruits">
<span>딸기</span>
<span>수박</span>
<div>오렌지</div>
<p>망고</p>
<h3>사과</h3>
</div>
*/
/*오렌지 색칠*/
.furits *:nth-child(2) {
color: red;
}
/*짝수(오렌지, 사과) 색칠*/
.furits *:nth-child(2n) {
color: red;
}
/*홀수(수박, 망고) 색칠*/
.furits *:nth-child(2n+1) {
color: red;
}
/*<div class="fruits">
<span>딸기</span>
<span>수박</span>
<div>오렌지</div>
<p>망고</p>
<h3>사과</h3>
</div>
*/
/*span을 제외하고 전체 색칙*/
.fruits *:not(span) {
color: red;
}
.box::before {
content: "앞!";
}
/*
<div class="box>
Content!
</div>
*/
/*앞 Content*/
.box::after {
content: "Before";
display: block; /*해당 라인을 통하여 인라인에 박스요소 사용 가능*/
width: 50px;
height: 30px;
background-color: royalblue;
}
/*
<div class="box>
Content!
</div>
*/
/*출력: Content! 뒤!*/
속성을 선택하여 적용
/*
<input type="text" value="HEROPY">
<input type="password" value="1234">
<input type="text" value="ABCD" disabled>
*/
/*모든 type은 빨간색*/
[type] {
color: red;
}
/*password만 주황색*/
[type="password"] {
color: orange;
}
.animal {
color: red;
}
<div class="ecosystem">생태계
<div class="animal">동물
<div class="tiger">호랑이</div>
<div class="lion">사자</div>
<div class="elephant">코끼리</div>
</div>
<div class="plant">식물</div>
</div>
상속되는 속성들(모두 글자/문자 관련 속성들)
.parent {
width: 300px;
height: 400px;
background-color: red;
}
.child {
width: 100px;
height: inherit; /*해당 값은 상속이 안되지만 강제로 상속시킴*/
background-color: orange;
}
html에 있는 같은 요소가 여러 선언이 대상이 된 경우 어떤 선언의 CSS 속성을 우선 적용할지 결정
div {color:red !important;} /*important키워드로 인해 점수 무한대*/
#color_yellow {color: yellow;} /*ID 선택자 100점*/
.color_green {color: green;} /*Class 선택자 10점*/
div {color: blue;} /*태그 선택자 1점*/
* {color: darkblue;} /*전체 선택자 0점*/
body {color: violet;} /*상속은 점수를 주지 않음*/
<div
id="color_yellow"
class="color_green"
style="color: orange;"> <!--인라인 선언 1000점 -->
Hello World!
</div>
(매우 개인적)
[장점]
환경 조성이 되어 공부할 수 있어서 좋음.
독학으로 배우지 못했던 선택자에 관한 것을 알 수 있었음
선택자 우선순의가 있다는 것을 알 수 있었고 이를 수치화할 수 도 있다.
[단점]
공지사항 답변이 조금 느리다고 생각됨
[신경쓸 것]
5일(평일) 안에 수업을 듣고 주말에 회고록을 쓰려고 했는데 조금 빡빡한 일정이라고 느껴진다.
따라서 5일(평일) 안에 수업을 듣고 notion에 적은 것을 그 날에 다시 복습할 겸 블로그에 임시작성하여 토요일에 올리도록 하자.
또한, 지금 너무 다 쓴 것 같은데, 이미 많은 사람들이 적어 놓은 것이 많이 있을 테니 가면 갈 수록 내가 주의해야 할 것 위주로 단축해서 기재해보자.