기존 작업물을 훼손하지 않고 간단한 테스트해보고 싶을 때 codepen을 이용해보자!
Start Coding 클릭
-> HTML, Css, JS 세개의 태그를 확인 할 수 있다.
-> HTML 패널에 작성하는 부분은 body부분에 코딩하는 것이다
-> 톱니바퀴 모양의 옵션을 선택하면 추가적인 기능을 적용 할 수 있다.
ex)HTML preprocessor: Pug, Markdown, Slim..
ex)CSS preprocessor: SCSS, Sass..
ex)JS preprocessor: Babel,TypeScript, LiveScript..
ex)JS add external scripts/pens : lodash, react 등 라이브러리 프레임워크를 절대경로로 불러와서 사용할 수 있다
!코드저장을 하려면 회원가입을 하기
Q 왜 브라우저 스타일 초기화가 필요할까?
A 브라우저 벤더들마다 구현을 다르게 설정
따라서 브라우저에서 기본적으로 제공하는 스타일을 초기화 하고 시작하는 것이 좋다!
reset.css cdn을 검색해보자
-> cdnsjs나 jsdelivr에서 cdn이라는 css 파일의 원격주소를 복사해서 사용한다.
-> jsdelivr 로 가보자
-> reset.css: 원본, 맨위의 reset.min.css 복사 아이콘 클릭
! 파일명.min.확장자 : 파일이 난독화나 경량화 되었다는 것을 의미한다. 우리가 외부에서 가져와 사용하는 플러그인, 라이브러리등을 수정할 일은 거의 없기 때문에 굳이 원본을 사용하지 않음
-> copyHTML 선택
-> html에 붙여넣기 link 탭 위에! 맨 위에 둬야 우리가 만든 css 파일 보다 먼저 동작 할 수 있음
codepen.io에서 적용해 볼 때
Pen 클릭
-> CSS 설정 선택
-> CSS Base 버튼 중 reset 선택
div.heropy + tab -> <div class="heropy"></div>
자동완성
이러한 자동완성(필수요소포함) 기능을 emmet 이라고 부른다. vscode에 내장 되어 있음
한번 눌러서 자동완성이 안될 떄 탭을 한번 더 눌러보자.
ex:) 에밋문법 : div>ul>li*4{$}
+ tab
!! *는 곱하기, {} 내용삽입, $ 순서대로 숫자입력
<div>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</div>
css 에서도 사용가능:
<h1>Hello HTML</h1>
<div>
<div>
<div>Content</div>
</div>
</div>
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
<link rel="stylesheet" href="./css/main.css">
<태그 속성 = "값 value">내용</태그>
<br>
태그를 제외 하고는 거의 모든 태그들은 필수속성을 가지고 있다 <img src=".cat.jpg" alt="고양이"/>
<input type="text/>
요소가 화면에 출력 되는 특성은 크게 2가지로 구분 된다.
<span></span>
<div></div>
<label>
<input type="radio" name="fruits" /> Apple
</label>
<label >
<input type="checkbox"/> Apple
</label>
Apple
<table>
<tr>
<td style="border:solid red;">A</td><td>B</td><td>B</td>
</tr>
<tr>
<td>C</td><td style = "border:solid blue;" colspan="2">D</td>
</tr>
</table>
A | B | B |
C | D |
<!-- -->
cmd + / or ctrl + /
자동으로 주석으로 만들어 줌
전역 특성(Global attributes)은 모든 HTML에서 공통으로 사용할 수 있는 특성입니다. 그러나 일부 요소에는 아무런 효과도 없을 수 있습니다.
<태그 title="설명"></태그>
요소의 정보나 설명을 지정.
<태그 style="설명"></태그>
<태그 class="이름"></태그>
요소를 지칭하는 중복 가능한 이름
css에서 지칭할 때 .이름
<!--HTML:-->
<span class="red">우리나라</span>
<!--CSS:-->
.red {
color:red;
}
<태그 id="이름"></태그>
요소를 지칭하는 고유한 이름. 중복이 안돼는 핵심되는 요소에 사용하기
css에서 지칭할 때 #이름
<!--HTML:-->
<span id="red">우리나라</span>
<!--CSS:-->
#red {
color:red;
}
<태그 data-이름="데이터"></태그>
요소에 데이터를 지정. 자바스크립트에서 사용
<!--HTML:-->
<div data-fruit-name="apple"> 사과 </div>
<div data-fruit-name="banana">바나나</div>
<!--JS:-->
const els = document.querySelectorAll('div')
els.forEach(el => {
console.log(el.dataset.fruitName)
})
JS
1. els라는 그릇을 만들어준다
2. els 에는 div태그를 모두 선택해서 담아준다
3. els에서는 하나씩 반복해서 데이터를 처리해 줄것이다. els.forEach()
4. 그 반복되는 내용은 el에 담아서 처리를 해줄것이다. el => {}
5. el.dataset.fruitName을 콘솔에 출력을 해주기
6. apple, banana가 출력 되어 있는 것을 볼 수 있다.
vscode에서는 되지 않는다
왜냐면.. 스크립트 태그를 읽은 상태에서 자바스크립트 파일을 실행시키면 아직 body는 읽힌 상태가 아니기 때문에
-> defer속성을 추가시켜준다. html구조가 준비 된 후(문서 분석 이후) javascript를 해석하겠다는 뜻
<script src="./main.js" defer>