HTML(HyperText Markup Language, HTML)은 tag를 사용하여 문서의 구조등을 기술하는 언어이다.
<!DOCTYPE html> // HTML 문서임을 정의함
<html>
<head>
<meta charset="utf-8">
</head>
<body>
Hello, world!
</body>
</html>
DOM(Document Object Model)은 html과 XML문서의 구조를 정의하는 API를 제공한다. 이때 DOM은 문서 요소집합을 트리형태 의 계층구조로 HTML을 표현한다.
HTML의 파서에는 2가지가 있다.
글로벌 속성 | 설명 |
---|---|
class | tag에 적용할 스타일의 이름을 지정한다. |
dir | 내용의 텍스트 방향을 지정. |
id | tag에 유일한 ID를 지정한다. (주로 js에서 사용한다.) |
style | 인라인 스타일을 적용하기 위해 사용 |
title | tag에 추가 정보를 지정. tag에 마우스 포인터를 위치시킬 경우 title의 값을 표시한다. |
문서의 작성자, 날짜, 키워드 등 브라우저의 본문에 나타나지 않는 일반 정보를 나타냄
name과 content 속성을 통해서 나타낸다.
<meta name="name" content="value">
// Non-breaking Space(공백)
< // less-than (<)
> // greater-than (>)
& // Ampersand (&)
" // Quotation mark(")
© // Copyright
® // registered trademark
<abbr> // 생략된 약어 표시
<address> // 연락처 정보 표시
<blockquote> // 긴 인용문구 표시. 좌우로 들여쓰기가 됨
<q> // 짧은 이용문구 표시. 좌우로 따옴표가 붙음
<cite> // 웹 문서나 포스트에서 참고 내용 표시
<pre> // 공백, 줄 바꿈 등 입력된 그대로 화면에 표시
<code> // 컴퓨터 인식을 위한 소스코드
<mark> // 특정 문자열을 강조. 화면에는 하이라이팅 됨
<hr> // 구분선
<b> , <strong> // 굵은 글씨로 표시. 특정 문자열 강조 (<string>)
<i>, <em> // 기울이기, 의미있는 글자를 비스듬히(<em>)
<big>, <small> // 큰글자, 작은 글자로 표시
<sup>, <sub> // 위첨자, 아래 첨자
<s>, <u> // 취소선, 밑줄
<ul> // 번호 없는 목록을 표시. 항목 앞에 심볼을 표시, unordered list
<ol> // ordered list, 번호 있는 목록을 표시
<li> // 목록 항목의 하위 tag로 사용한다.
<dl> // 용어의 정의와 설명에 대한 내용을 목록화해서 표시.
<dt> // 용어 목록의 정의 부분을 나타냄
<dd> // 용어 목록의 설명 부분을 나타냄
colspan // 두 개 이상의 열을 하나로 합치기 위해서 사용
rowspan // 두 개 이상의 행을 하나로 합치기 위해 사용
<img src="" title="">
<figure> // 설명 글을 붙여야 할 대상을 지정
<figcaption> // 설명 글이 필요한 대상을 묶음
ex)
<figure>
<img>
<figcaption> </figcatpion>
</figure>
<a>
tag를 사용하여 다른 문서로 연결하는 기능<map>
: 하나의 이미지에 여러개의 link<form> // form 태그 내부에 여러개의 control 요소를 포함
<input> // 텍스트 box, 체크box 등의 사용자가 데이터를 입력
<textarea> // 여러 줄의 문자를 입력
<button> // 버튼
<select> // dropBox, comboBox
<optgroup> // selectbox의 항목을 그룹화
<option> // select box의 항목들을 정의
<label> // for 속성을 이용하여 다른 control 요소와 텍스트를 연결
<fieldset> // 입력 항목들을 그룹화함
<legend> // fieldset의 제목을 지정함
--
placeholder : 입력란에 적당한 힌트 내용을 표시
readonly : 입력란에 텍스트를 사용자가 직접 입력하지 못하게 읽기 전용
css 파일을 나 @import HTML 문서에 연결하여 사용한다.
<link rel="stylesheet" type="text/css" href="path/filename.css"> // #1
<style type="text/css">
@import url("path/filename.css"); /* @import "path/filenmae.css"; */
</style>
일반 선택자의 우선순위는 “전체선택자 < 타입선택자 < 클래스선택자 < ID선택자” 이다.
* { margin: 0; text-decoration: none;}
p { background: yellowgreen; color: darkgreen;}
.class1 { background: yellowgreen; color: darkgreen;}
div.class2 { background: darkgreen; color: yellowgreen;}
#id1 { background: yellowgreen; color: darkgreen;} // id 로 검색
div#id2 { background: darkgreen; color: yellowgreen;} // div 태그의 id
하위선택자(Descendant Combinator)와 자식 선택자(Child Combinator)
E F {} // E 요소의 자손인 F요소를 선택 (하위선택자) : 모든 하위요소를 적용
E>F {} // E 요소의 자식인 F요소를 선택 (자식선택자) : 부모 아래의 자식요소에 적용
인접형제선택자와 일반형제선택자
E+F {} // E요소를 바로 뒤따르는 F요소를 선택 : 하나만 선택
E~F {} // E요소가 앞에 존재하면 F를 선택 : 조건을 충족하는 모든 조건요소를 선택
태그 안의 특정 속성들에 따라 스타일을 지정
E[attr] // attr 속성이 포함된 요소 E를 선택
E[attr="value"] // attr 속성이 정확하게 value인 모든 요소 E를 선택
E[attr~="value"] // attr 속성의 값에 'value'가 포함되는 요소를 선택 (공백으로 분리된 값이 일치)
E[attr ^= 'value'] // attr 속성에 value로 시작하는
E[attr $= 'val'] // attr 속성에 val 로 끝나는
E[attr *= 'val'] // attr 속성의 값에 'val'이 포함되는 요소를 선택
E[attr |= 'val'] // attr 속성의 값이 정확하게 'val' 이거나 'val-'으로 시작되는 요소선
text-align: left|right|center|justify // text정렬 방식 지정
text-decoration: none|underline|overline|line-through|blink // text 장식 지정
// underline:밑줄, overline:글위에줄, line-through:가운데긋는선, blink:깜빡
color : text 색상 지정
display: none|block|inline // 웹 브라우저에 언제 어떻게 보일지를 결정
// block: block-level의 태그들의 기본 속성값. block level요소 안에는 inline level 요소가 들어갈 수 있음
// inline: inline-level의 태그들의 기본 속성값. width, height, margin-top, 등 지정 불
// inline-block: 새로운 라인에서 시작하지는 않지만 block처럼 크기지정 가능.
// none: 해당 요소를 랜더링하지 않도록 설
border-style: none|solid|hidden
// 값이 1개일때 모든 면 적용, 2개일때 {위아래, 오른쪽왼쪽}, 3개일때 {top, right-left, bottom}으로 적용
// 4개일때 {top, right, bottom, left} 순으로 적용된다.
<script>
태그는 HTML 파일 내부의 <head>
나 <body>
안 어느곳에서나 선언 가능하다.<body>
안의 끝부분에 script 태그를 둘 것을 권장숫자형(number) : 정수 또는 실수, 모든 숫자를 8byte의 실수형태로 처
문자열형(string) : 문자열
boolean 형(boolean) : 참or거짓
undefined(undefined) : 변수가 선언 되었지만 초기화가 되지 않을 경우
null(object) : 값이 존재하지 않은 경우
이를 제외한 모든 값은 객체타입이다.
JavaScript는 언더플롱, 오버플로우, 0으로 나누는 연산에 대해 예외를 발생시키지 않는다.
JS에는 숫자와 관련된 특별한 상수가 존재한다.
💡 일급객체란?
다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.
💡<일급객체의 조건>
- 변수에 할당할 수 있다.
- 다른 함수를 인자로 전달 받는다.
- 다른 함수의 결과로서 리턴될 수 있다.
💡<일급객체의 효과>
- 고차함수를 만들 수 있다.
- 콜백(callback)을 사용할 수 있다.
function 함수이름 (args1, args2...){}
var 함수이름 = function(){}
var 함수이름 = new Function('매개변수1', '매개변수2', ... , '함수내용');
선언단계 : 변수 객체에 변수를 등록
초기화단계 : 변수 객체에 등록된 변수를 메모리에 할당. (undefined로 초기화됨)
할당단계 : undefined로 초기화된 변수에 실제값을 할당
선언단계와 초기화단계는 한번에 이루어진다.
navigator 객체는 브라우저의 정보가 내장된 객체
location 객체(주소창)를 이용하여 현재 URL와 관련된 정보
location.href // 프로퍼티에 값을 할당하지 않으면 현재URL조회 할당하면 해당 이동
location.reload() // 현재 페이지를 새로고침
window.open(`페이지 URL`, `창 이름`, `특성`, `히스토리대체여부`);
// 창이름(string) : open할 대상 지정
// 특성(string) : 새로 열린 창의 너비, 높이 등의 특성 지정
// 히스토리 대체여부(bool) : 현재 페이지 히스토리에 덮어 쓸지 여
JSON.stringify(JSON 객체) // 직렬화
JSON.parse(JSON 형식의 문자열) // Deserialize
toJSON() // JS Date 객체의 데이터를 JSON 형식의 문자열로 변환
문서 객체는 textNode를 갖는 객체와 갖지 않는 객체로 나뉜다.
createElement(tagName) // element node 생성
createTextNode(text) // text node 생성
appendChild(node) // 객체에 node를 child로 추가
setAttribute(name, value) // 객체의 속성을 지정
// 브라우저가 지원하지 않는 속성도 가능
removeChild(childnode) // 객체의 자식노드를 제거
getAttribute(name) // 객체의 속성을 가져옴
innerHTML // 문자열을 HTML 태그로 삽입
innerText // 문자열을 text node로 삽입 -> text node로 삽입되기 때문에 태그가 무시된다.
example)
htmlToText.innerHTML = "<h2>Hello world!!!</h2>"
.replace(/</g, "<") // 여는 꺽새는 문자로받음
.replace(/>/g, ">");// 닫는 꺽새도 문자로 받음