HTML CSS JavaScript Web Page-Table of Contents
날짜 2023-10-18 22:42
참고/연관된 기록 =>
행동에 대한 이유/근거 =>
ㅡ
ㅡ
Second-Brain

<HTML-CSS-JavaScript-웹 페이지 구축>
ㅡ Part 1 - Web 소개-HTML
전체적인 내용 키워드 기록=>
- HTML - Hyper Text Markup Language | HTML-Hyper Text Markup Language-의미
- Hyper Text - 링크 의미
- Markup - 태그 의미
html 처음 공부했을 때 오해했던 부분
html 태그 다양하다.
어떻게 다 외우지? (X)html이든 다른 내용이든 모든 내용을 암기하는게 아니다. 단지 머리속에 얕게 + 전체적인 내용이 대략적으로 들어있으면 됨.
그렇게되면 모르는 부분이 나왔을 때 대략적인 키워드로 검색을 하면서 내용을 채워가면 됨.
-
HTML 문법 | HTML문법-요소-태그-속성-속성값
- HTML 태그
- ㅡㅡㅡㅡ
- h태그-헤더태그 | h태그-헤더태그
- div-디브태그 | div-span태그
- semantic 태그 | html-레이아웃-semantic-태그
- p 태그
- list 태그
- li태그
- ul태그
- "순서가 없는 리스트"
- ol태그
- "순서가 있는 리스트"
- video 태그 | https://developer.mozilla.org/ko/docs/Web/HTML/Element/video
- img요소-이미지 | img요소-예시코드
- HTML 뼈대 태그/핵심 태그 | HTML-뼈대태그-핵심태그
- ㅡㅡㅡㅡ
- DOCTYPE
- html
- head
- meta
- charset 속성 | meta태그-charset속성-문자 인코딩방식
- UTF 속성값 | 인코딩-디코딩-유니코드
- charset 속성 | meta태그-charset속성-문자 인코딩방식
- title
- body
- 유튜브 웹 사이트 - 웹 페이지 구조분석 | 유튜브 웹 페이지-구조분석
- ㅡㅡㅡㅡ
- 개발자 도구
- 화면 레이아웃
- header 영역/태그
- div 태그
- span 태그
- button 태그
- a 태그
- href속성
- svg 태그 | 이미지삽입-svg-img태그-상호작용
- path태그
- input태그 + form태그 | form태그-html입력폼
- type 속성
ㅡ
- type 속성
- div 태그
- header 영역/태그
- 코드펜 | ✏️코드펜(CodePen)
- VS코드 | VS-확장버튼-기능확장
ㅡ Part2 - CSS
ㅡ Part3 - Javascript
ㅡ HTML
ㅡ MDN-웹표준기술서-개념서
: 모르는 부분이 생겼을 때 검색 키워드로 "~ mdn" 을 붙인다.
- 키워드/문장 기록 =>
- MDN web docs - 웹 문서
- 기술목록
- 튜토리얼
- 레퍼런스
- 도큐먼트
- 문서 참조 및 가이드
- 사용자 의견
- 기술목록
- Mozilla Developer Network
- 웹 표준-학습 플랫폼/개념서
- 웹 표준 기술
- HTML/CSS/JavaScript/그래픽/HTTP/API/DOM
- MDN web docs - 웹 문서
ㅡ ✏️코드펜(CodePen)
- 키워드/문장 기록 =>
- 코드펜(CodePen)
- 웹 표준 언어/코드 조각단위 테스트할 수 있는 온라인 커뮤니티
- 사용법
- Embed 버튼
- 코드펜(CodePen)
인코딩-디코딩-유니코드" tabindex="-1">ㅡ 인코딩-디코딩-유니코드
- 키워드/문장 기록 =>
-
"데이터를 컴퓨터에서 사용하거나, 전송하기 위해 특정 형식으로 변환하는 과정"
-
인코딩 - Encoding
- 사용자 > 컴퓨터
- 유니코드(Unicode) 인코딩
- 문자/이미지/오디오 파일 > 숫자 매핑/변환
-
디코딩 - Decoding
- 컴퓨터 > 사용자
- 유니코드(Unicode) 디코딩
-
다양한 인코딩 방식 = 데이터 변환 방식
- 텍스트 데이터 인코딩 방식
- ASCII
- UTF-8
- UTF-16
- UTF-32
- cp949
- 텍스트 데이터 인코딩 방식
-
ㅡ HTML-뼈대태그-핵심태그
- 키워드/문장 기록 =>
- HTML-뼈대태그-핵심태그 - "문서 구조/레이아웃/영역 정의"
- 메타데이터
ㅡ img요소-예시코드
- 키워드/문장 기록 =>
- img요소
- 이미지 삽입 기능
-ㅡㅡㅡㅡㅡ - src(source) 속성
- alt(alternative) 속성
- 이미지 사이즈 설정 가능-css
- 크기 단위 생략 가능 - 기본단위 px
- %크기단위 예시
- 이미지 링크 설정 가능
- a요소
- 이미지 맵-map 설정 가능
- 버튼
- usemap속성
- map요소
- area요소
ㅡ h태그-헤더태그
- 키워드/문장 기록 =>
- h태그=헤더 태그
- 해당 페이지 제목
- h1 ~ h6
- 주의점
- h태그=헤더 태그
ㅡ HTML-Hyper Text Markup Language-의미
- 키워드/문장 기록 =>
- HTML - Hyper Text Markup Language 의미
- Markup-마크업
- 문서 구조 정의 언어
- Hyper Text-하이퍼텍스트 - "문서 <> 문서 연결/이동할 수 있는 텍스트"
- 웹 기술 - 링크
- Markup-마크업
- HTML - Hyper Text Markup Language 의미
ㅡ HTML문법-요소-태그-속성-속성값
- 키워드/문장 기록 =>
- html 문법
- ㅡㅡㅡㅡ
- html element-요소
- 태그
- 속성 - "태그마다 지원하는 속성/속성값 다르다."
- 속성값
- 기본값 존재 - "특정 상황에서 명시적 설정"
- a태그-target속성
- 기본값 존재 - "특정 상황에서 명시적 설정"
-
내용-content
- 시작태그-opening tag
- 빈 태그-empty tag
- br, img 태그
- 빈 태그-empty tag
- 종료태그-closing tag
- 시작태그-opening tag
- 태그
ㅡ html-레이아웃-semantic-태그
- 키워드/문장 기록 =>
-
레이아웃 태그-semantic-시맨틱 태그 - "웹 페이지 각각 구역 존재 = 레이아웃 존재 > 각 구역을 구현하는 태그들 존재"
-
ㅡㅡㅡㅡ
-
header태그
- 웹 페이지 페이지 상단 부분(머리말 부분)
- 내용
- 페이지 로고/사이트 제목/네비게이션 메뉴
-
nav태그 - navigation
- "웹 페이지 메뉴/링크/버튼 등 특정 페이지로 이동하는 기능을 가진 태그들을 그룹화"
- 웹 페이지 위치
- 메인/상단 - 사이드바 - 하단
-
main태그
- "하나의 웹 페이지에서 하나의 메인 내용/섹션 정의"
-
section태그
- "하나의 웹 페이지에서 여러 개 독립적인 섹션/공간 정의 가능"
-
article태그
- "각각 section 태그 안에서 또 다른 독립적인 콘텐츠 블록 생성 시 사용"
-
aside태그
- "웹 페이지 주요 내용과 관련이 적은 보조적인 정보 묶는데 사용"
- 사이드바 광고
-
footer태그
- 웹 페이지 하단 부분 위치
- 배치할 내용 - 웹 사이트에 대한 정보
- 저작권 / 연락처 / 서비스 이용 약관
-
figure
-
figcaption
-
ㅡ div-span태그
- 키워드/문장 기록 =>
- div 태그 - span 태그
- ㅡㅡㅡㅡ
- "분할하다" 의미
- 서로 다른 태그를 묶어 > 영역을 만들고 > 해당 영역에 스타일 적용
- span요소 - "div태그 안에서 영역/구역을 만든다"
ㅡ HTML-display속성-블록-인라인
- 키워드/문장 기록 =>
- html 태그 display 속성 - "모든 요소 웹 페이지에 보여야 하기 때문에 display속성 가짐"
- ㅡㅡㅡㅡ
- block 블록 타입 요소
- content 내용 상관없이 모든 라인/공간 차지
- p, h, ul, ol, form 요소
- div 태그 - "여러 요소를 하나로 묶는 기능 > 스타일 적용"
- inline 인라인 타입 요소
- content 내용만큼 라인/공간 차지
- a, img요소
- span 태그 - "텍스트 특정 부분 묶어 스타일 적용"
- none 속성값
ㅡ meta태그-charset속성-문자 인코딩방식
- 키워드/문장 기록 =>
- meta 태그
- ㅡㅡㅡㅡ
- charset 속성 - "문자 인코딩 방식 명시"
- 유니코드-UTF-8 | 인코딩-디코딩-유니코드
ㅡ 이미지삽입-svg-img태그-상호작용
- 키워드/문장 기록 =>
- "사용자들은 버튼-이미지를 눌러 버튼-기능을 사용하고 있다"
- 사용자<>웹 사이트 간 이벤트 처리 및 상호작용
- 동적인 기능
- 사용자 경험 향상
- button-버튼 태그에 이미지를 삽입하는 2가지 방법
- ㅡㅡㅡㅡ
- svg 태그
- 장점
- 확장 가능한 벡터 그래픽 = 스타일 유연성 = 일관된 화질 = 화면 손실 x
- 장점
- img 태그
- 래스터(라스터) 이미지 = 비트맵 이미지 - "픽셀 사용 이미지를 표현"
- 파일 형식
- JPEG, PNG, BMP
- 파일 형식
- 래스터(라스터) 이미지 = 비트맵 이미지 - "픽셀 사용 이미지를 표현"
- "사용자들은 버튼-이미지를 눌러 버튼-기능을 사용하고 있다"
ㅡ form태그-html입력폼
- 키워드/문장 기록 =>
- form 태그 - "사용자로부터 입력을 받을 수 있는 HTML 입력 폼을 정의 기능"
- button
- fieldset
- input
- label
- option
- optgroup
- select
- textarea
- form 태그 - "사용자로부터 입력을 받을 수 있는 HTML 입력 폼을 정의 기능"
유튜브 웹 페이지-구조분석" tabindex="-1">ㅡ 유튜브 웹 페이지-구조분석
- 키워드/문장 기록 =>
- 유튜브 웹 페이지-구조분석
- 이미지
ㅡ CSS
- 용어/표현 정리
ㅡ
css에서는 태그! 라는 표현이 아니라 선택자! 라는 표현을 사용
ㅡ
레이아웃 - 내용이 들어가는 구역-공간
ㅡ
배치하다 = 정렬된다.
ㅡ
css 속성 = 기능 단위 = css 코드
속성을 작성하다 = css코드 작성하다 = 기능을 설정하다
css속성을 잘 이해하기 위해 css 레이아웃에서 자주 사용되는 용어에 대한 정확한 이해가 필요 > 용어를 이해하면 속성명을 보고 대략적인 기능 파악 가능
ㅡ 크롬-CSS확인방법-환경설정-왓폰트
- 키워드/문장 기록 =>
- 크롬 css스타일코드 확인 방법
- ㅡㅡㅡㅡ
- 개발자도구(F12)
- input태그 placeholder속성 - "개발자 도구 이용 직접/바로 확인하기 어려운 스타일 존재"
- css 가상선택자 - "특정 상태/조건 시 css코드 실행되기 떄문"
- 스타일 확인 방법
-
- 크롬 추가적인 환경설정
- Preferences의 메뉴 > Show user agent shadow dom
#shadow-root스타일
-
- 크롬 확장 프로그램-왓폰트
-
ㅡ CSS문법-선택자-선언-속성-속성값-세미클론
- 키워드/문장 기록 =>
- CSS 문법
- ㅡㅡㅡㅡ
- 선택자-selector - "CSS를 적용할 HTML 요소를 선택함/가리킴"
- "선언시작"표현
- 속성
- 속성값
- 세미클론
;- "선언 구분자"표현
- "선언 끝"표현
- 주석-comments
- 문법
- 주의
ㅡ html-link태그-스타일시트연결
- 키워드/문장 기록 =>
- html link 태그
- ㅡㅡㅡㅡ
- 해당 문서와 외부소스 (코드)파일 사이 관계 정의
- 외부 스타일 시트(external style sheet) 연결
- rel속성
rel="stylesheet"
- href속성
ㅡ 브라우저-기본스타일시트-user agent stylesheet
- 키워드/문장 기록 =>
- 브라우저 기본 스타일시트/스타일링 코드 - "브라우저가 웹 페이지 렌더링 시 명시되지 않은 부분에 대해 기본값으로 적용하는 스타일시트 존재"
- ㅡㅡㅡㅡ
- user agent stylesheet
- 브라우저 스타일시트 제어 - "기본값이 설정된 요소에 스타일 직접 설정한다/초기화한다."
ㅡ CSS-크기단위-%-em-px
- 키워드/문장 기록 =>
- css 크기단위
- ㅡㅡㅡㅡ
- 백분율 단위 %
- 기본 크기 100% 설정
- 부모태그-상대적인 크기 단위
- 배수 단위 em
- 부모태그-상대적인 크기 단위
- 픽셀 단위 px
- 가장 주로 사용
- 절대적인 크기
- 예시코드
- body태그 기본값 16px
- 200%-32px
- 0.7em-11.2px
ㅡ css-크기단위-em-rem-상대적인 단위
- 키워드/문장 기록 =>
-
상대적인 크기 단위
-
ㅡㅡㅡㅡ
-
em
- 부모요소 폰트사이즈에 의한 상대적인 단위
- 주의 - "부모요소의 같은 속성값에 대한 상대적인 x 무조건 font-size속성값에 대한 상대적인 크기o"
-
rem
- Root(루트)요소 폰트사이즈에 의한 상대적인 단위
- Root = html 선택자
- Root(루트)요소 폰트사이즈에 의한 상대적인 단위
-
h1태그 - 부모요소 기준 2em(기본값)
-
h2태그 - 부모요소 기준 1.5em(기본값)
-
h3태그 - 부모요소 기준 1.17em(기본값)
-
p태그 - 부모요소 기준 1em(기본값)
-
ㅡ CSS-박스모델-content-패딩-border-마진-이미지
- 키워드/문장 기록 =>
-
CSS 박스 모델-box model - "html 요소 4개 구역 존재"
-
ㅡㅡㅡㅡ
-
content 부분
- height, width 속성 - "오직 내용 부분(박스 사이즈)의 높이와 너비 사이즈 설정됨" | CSS-width-height속성--inline-block속성값
- 태그 사이즈 표현
- height, width 속성 - "오직 내용 부분(박스 사이즈)의 높이와 너비 사이즈 설정됨" | CSS-width-height속성--inline-block속성값
-
패딩 padding - 내용<>테두리 사이 간격
- padding-top, right, bottom, left
- 패딩 축약 표현 가능(padding shorthand)
- 축약 표현 시 주의점
-
border 부분 - 테두리/선 굵기
- 박스 사이 표현 - "Content + Padding + Border 의미"
- CSS border 속성표 - "테두리 각 방향 개별적 스타일 적용 가능"
- border-style 속성 - "테두리 다양한 모양"
- dotted, dashed, solid, double, none, hidden
- border-width 속성 - "테두리 두께설정"
- thin, medium, thick 예약어
- border-color 속성
- 테두리 축약 표현 존재 (border shorthand)
-
마진 margin
- 서로 다른 태그 사이 간격 - "간격이기 때문에 배경색 영향x"
- margin, margin-top, margin-right, margin-bottom
- 마진 축약 표현 가능(margin shorthand)
-
ㅡ CSS-선택자-우선순위
- 키워드/문장 기록 =>
- CSS 선택자 우선순위
- ㅡㅡㅡㅡ
-
- 중요도(Importance)
!important키워드
-
- 인라인 스타일
- html 태그 style 속성
-
- id 선택자
-
- 클래스 선택자
-
- 직접/태그 선택자 (Type Selectors)
ㅡ CSS-전체-직접-태그-id-class-그룹-선택자
- 키워드/문장 기록 =>
- CSS 선택자-selector
- ㅡㅡㅡㅡ
- 전체 선택자
* { color: red; }
- 직접 선택자=태그 선택자
h2 { color: teal; }<p style="color: orange;">
- 아이디(id) 선택자
#heading {~}- 주의
- 클래스(class) 선택자
.headings {~}
- 그룹 선택자-group
h2, h3, p {~: ~; }
ㅡ 가상선택자-hover-active-focus-nth-child(n)
- 키워드/문장 기록 =>
- CSS 가상선택자(Structural Pseudo-classes)=의사 클래스(Pseudo-classes) - "특정 상황에 처한 태그에 스타일을 적용-특정 위치의 요소를 선택하기 위해 사용하는 선택자"
- ㅡㅡㅡㅡ
- :hover (호버) 선택자
- 호버 상태 - "마우스커서 특정 요소 위에 있을 때"
- :active (액티브) 선택자
- 액티브 상태 - "사용자가 요소 클릭하고 있을 때"
- :focus (포커스) 선택자
- 포커스 상태 - "클릭한 상태"
- 입력폼 사용
- :nth-child(n) 선택자 - "자식요소들 중 특정위치/n번째 요소만을 선택"
- n 키워드
- 정수(1, 2, 3, ...)
- 수식(an + b)
- 짝수 또는 홀수 키워드
- odd, even
- n 키워드
ㅡ CSS-직계자식선택자
- 키워드/문장 기록 =>
- CSS 부모-자식관계
- ㅡㅡㅡㅡ
- 직계 자식 요소 - "바로 아래에 있는 자식 요소 의미"
>직계 자식 선택자- 모든 자식 선택 표현식
ㅡ CSS-width-height속성--inline-block속성값
- 키워드/문장 기록 =>
- CSS width, height속성 - "블록 요소에만 적용됨 <> 인라인 요소에 적용 x "
- html display 속성 | HTML-display속성-블록-인라인
- inline-block 속성값 - "인라인-블록 속성 적용 시 인라인 특징+블록 특징 모두 가짐 > CSS width/height속성 적용됨"
- 웹 사이트 메뉴, 내비게이션 바 사용
ㅡ css-position속성-정적-고정-절대-상대위치
- 키워드/문장 기록 =>
- CSS-position 속성 - "HTML 요소가 위치를 결정하는 방식을 설정"
- 정적위치 방식 제외 모두 상대적인 위치 배치 방식
- ㅡㅡㅡㅡ
-
- 정적 위치(static position) 지정 방식
- static 속성값
- 가장 기본적인 방식-기본값-기본위치 - "웹 페이지 흐름에 따라(display속성값) 차례대로 요소가 위치" 표현 | HTML-display속성-블록-인라인
- top, right, bottom, left 속성 영향 x
- 가장 기본적인 방식-기본값-기본위치 - "웹 페이지 흐름에 따라(display속성값) 차례대로 요소가 위치" 표현 | HTML-display속성-블록-인라인
-
- 고정 위치(fixed position) 지정 방식
- fixed 속성값
- 뷰포트(viewport) 기준 위치 설정 | 뷰포트위치-Viewport Position-마우스스크롤
-
- 절대위치(absolute position) 지정 방식
- absolute 속성값
- 부모태그/루트태그 기준 이동
- 위치가 설정된 요소 표현 - "정적 위치 방식 제외한 3가지 방식으로 위치가 설정된 요소 의미"
-
- 상대위치(relative position) 지정 방식
- relative 속성값
- "현재위치/기본위치/정적위치/전체 페이지 기준 이동"
- top 속성 - "위를 기준으로 ~이동 = (반대방향)아래 방향으로 ~ 이동"
- bottom 속성 - "아래를 기준으로 ~이동 = (반대방향)위쪽으로 ~ 이동"
- left 속성 - "왼쪽을 기준으로 ~이동 = (반대방향)오른쪽으로 ~ 이동"
- right 속성 - "오른쪽를 기준으로 ~이동 = (반대방향)왼쪽 방향으로 ~ 이동"
ㅡ box-sizing속성-요소크기 설정
- 키워드/문장 기록 =>
- box-sizing속성 - "html요소 박스사이즈/요소크기를 어디까지로 설정/계산할건지 설정하는 기능"
- ㅡㅡㅡㅡ
content-box속성값 (기본값) - "박스 사이즈 콘텐츠 영역까지"padding-box속성값 - "박스 사이즈 패딩 영역까지"border-box속성값 - "박스 사이즈 테두리 영역까지"
ㅡ CSS-vh크기단위-상대적인-뷰포트높이
- 키워드/문장 기록 =>
- vh 크기단위 - "화면 크기에 따라 요소 크기 자동 조절됨"
- ㅡㅡㅡㅡ
- 뷰포트 높이(Viewport Height) 기준 크기 설정 = 브라우저 창 높이
- 상대적인 크기단위
ㅡ CSS-Flex-레이아웃-구조-컨테이너-아이템
- 키워드/문장 기록 =>
-
CSS-Flex-플렉스
-
ㅡㅡㅡㅡㅡㅡㅡㅡ
-
Flexible box = Flexbox - "HTML 레이아웃 아이템들/내용들 배치를 위한 기능"
-
Flex-css 레이아웃 기능 구현을 위한 html 구조
-
div.container-플렉스 컨테이너-부모요소 - "컨테이너는 flex기능이 적용되는 공간 > 설정된 속성에 따라 아이템들이 해당 공간에 자동 배치"
- container-플렉스 컨테이너 적용 속성
- display속성 | flex-display속성-flex-inline-flex-속성값
- flex-direction 속성 | flex-direction속성-배치방향
- flex-wrap 속성, flex-flow속성 | flex-wrap속성-줄넘김-flex-flow-단축속성
- container-플렉스 컨테이너 적용 속성
-
div.item 플렉스 아이템-자식요소
- item-플렉스 아이템 적용 속성
- flex-basis 속성 | flex-basis속성-아이템 기본크기 설정
- flex-grow 속성 | flex-grow속성-여백-비율차지
- flex-shrink 속성 | flex-shrink속성-줄이기-기능
- flex (단축)속성 | flex-(단)축약속성
- align-self 속성 | flex-align-self속성-align-items속성
- order 속성 | flex-order속성
- z-index 속성 | flex-z-index속성
- item-플렉스 아이템 적용 속성
-
메인 축/교차축 용어 이해 필요 | flex-메인축-수직축-row-column-베이스라인 | flex-direction속성-배치방향#이미지1
-
ㅡ flex-메인축-수직축-row-column-베이스라인
- 키워드/문장 기록 =>
- main axis=메인 축 (오뎅꼬치 생각) - "아이템들이 배치되는 방향의 축"
- ㅡㅡㅡㅡ
- row-가로방향 배치
- 시작점-왼쪽
- 끝점-오른쪽
- column-세로방향 배치
- 시작점-위쪽
- 끝점-아래쪽
- cross axis = 교차축 = 수직축 - "메인축과 수직을 이루는 축"
- ㅡㅡㅡㅡ
- row-가로방향 배치
- 시작점-위쪽
- 끝점-아래쪽
- column-세로방향 배치
- 시작점-왼쪽
- 끝점-오른쪽
- baseline 베이스라인 (축)
ㅡ flex-display속성-flex-inline-flex-속성값
- 키워드/문장 기록 =>
- container-플렉스 컨테이너 적용 속성
- ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
- display속성
- flex - "flex css 레이아웃을 사용하기 위한 시작 코드"
- "적용 시 블록 요소들 인라인 요소들 처럼 width만큼만 배치+height는 자동으로 컨테이너 높이만큼 늘어남"
- inline-flex - "컨테이너가 인라인-블록 속성값처럼 동작"
- 이미지 확인
- flex - "flex css 레이아웃을 사용하기 위한 시작 코드"
ㅡ flex-direction속성-배치방향
- 키워드/문장 기록 =>
- container-플렉스 컨테이너 적용 속성
- ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
- flex-direction 속성 - "아이템들 배치방향(메인 축 가로<>세로방향) 설정 기능"
- 반응형 레이아웃 구현 | 반응형 웹(디자인)(레이아웃)-장점-모바일퍼스트
- row(기본값) 속성값 - "아이템 행(가로)방향 배치"
- 시작점 - 왼쪽
- 끝점 - 오른쪽
- row-reverse 속성값
- 시작점 - 오른쪽
- 끝점 - 왼쪽
- column 속성값 - "아이템 열(세로)방향 배치"
- 시작점 - 위쪽
- 끝점 - 아래쪽
- column-reverse 속성값
- 시작점 - 아래쪽
- 끝점 - 위쪽
ㅡ flex-wrap속성-줄넘김-flex-flow-단축속성
- 키워드/문장 기록 =>
-
container-플렉스 컨테이너 적용 속성
-
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
-
flex-wrap 속성 - "컨테이너에 아이템들 한 줄에 담을 공간이 없을 때 어떻게 줄넘김 처리 기능 = 컨테이너 사이즈가 줄더라도 아이템들 사이즈는 줄지 않는다."
- nowrap (기본값) - "줄바꿈 x"
- wrap - "아래 줄바꿈"
- wrap-reverse - "위로 줄바꿈"
-
flex-flow (단축)속성 - "flex-direction 속성 >flex-wrap 속성 한번에 작성할 수 있는 단축 속성"
-
ㅡ Flex-정렬-justify-align 속성
- 키워드/문장 기록 =>
- 정렬관련 속성/용어 (css-그리드 내용과 연관성)
- ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
- justify 속성 - "메인 축 방향으로 정렬"
- justify-content 속성 | flex-justify-content속성
- align 속성 - "메인축의 수직 축 방향으로 정렬"
- align-items 속성 | flex-정렬-align-items속성
- align-content 속성 | flex-정렬-align-content 속성
ㅡ flex-justify-content속성
- 키워드/문장 기록 =>
- justify-content 속성 - "메인 축 방향 content 정렬"
- ㅡㅡㅡㅡ
- flex-start (기본값) - "시작점부터 배치"
- row - 왼쪽
- column - 위쪽
- flex-end
- row - 오른쪽
- column - 아래쪽
- center
- space-between - "1번 아이템 시작점 위치 > 마지막 아이템 끝점 위치 > 나머지 균일 간격 배치 = 아이템 사이 균일 간격"
- space-around - "모든 아이템 양쪽(둘레) 균일한 간격 배치"
- space-evenly - "아이템 사이와 양 끝 균일한 간격 배치"
ㅡ flex-정렬-align-items속성
- 키워드/문장 기록 =>
- align-items 속성 - "전체 아이템 메인축 방향으로 정렬하되 수직 축/세로방향을 시작점으로 정렬"
- ㅡㅡㅡㅡ
- stretch - (기본값) - "자동으로 height가 수직방향 쭉 늘어나 배치"
- "width/가로 사이즈 = content 사이즈"
- flex-start - "시작점부터 배치"
- "stretch 이외 속성값들은 height가+width content 사이즈 만큼 설정"
- row - 위쪽
- colum - 왼쪽
- flex-end
- center
- 아이템 한 가운데 위치 가능
- baseline
ㅡ flex-정렬-align-content 속성
- 키워드/문장 기록 =>
- align-content 속성 - "여러 행 정렬 기능"
- flex-wrap속성 연관성 존재 | flex-wrap속성-줄넘김-flex-flow-단축속성
- ㅡㅡㅡㅡ
- stretch - "줄바꿈 + 쭉 늘어남"
- flex-start - "시작점 기준 줄바꿈 진행"
- flex-end
- center
- space-between - "시작점 배치 후 줄바꿈 진행 시 끝점부터"
- space-around
- space-evenly
- align-content 속성 - "여러 행 정렬 기능"
ㅡ flex-z-index속성
- 키워드/문장 기록 =>
- z-index 속성 - "각 아이템들 z축 정렬 > 숫자 클수록 위로 올라옴"
- ㅡㅡㅡㅡ
- 기본값 0
ㅡ flex-order속성
- 키워드/문장 기록 =>
- order 속성- "각 아이템들 시각적 나열/배치 순서 결정 속성"
- ㅡㅡㅡㅡ
- 속성값 : 숫자값 - "작은 숫자일 수록 먼저 배치"
ㅡ flex-align-self속성-align-items속성
- 키워드/문장 기록 =>
- align-self 속성 - "각 아이템 수직축 방향 정렬"
- ㅡㅡㅡㅡ
- align-items 속성과 연관성 | flex-정렬-align-items속성 - "전체 아이템 수직축 방향 정렬"
- auto 기본값 - "align-items 설정을 상속받음"
ㅡ flex-(단)축약속성
- 키워드/문장 기록 =>
- flex (단축)속성 - "flex-grow 속성 >flex-shrink 속성 > flex-basis 속성 한번에 작성할 수 있는 단축 속성"
ㅡ flex-shrink속성-줄이기-기능
- 키워드/문장 기록 =>
- flex-shrink 속성 - "유연하게 줄이기 기능" = "아이템이 flex-basis값보다 작아질 수 있는지 설정하는 속성"
- ㅡㅡㅡㅡ
- 1 기본값 - "0보다 크면 해당 아이템 유연한 박스로 변함 > 따라서 flex-basis보다 작아질 수 있음 > 줄어든 길이만큼 전체 요소들끼리 비율만큼 나눠서 분담"
- 0 설정 - "아이템 크기 설정한 flex-basis보다 작아질 수 없음 = 고정"
ㅡ flex-grow속성-여백-비율차지
- 키워드/문장 기록 =>
- flex-grow 속성 - "아이템이 flex-basis값보다 커질 수 있는지 설정하는 속성" = "flex-basis를 제외한 여백 부분을 flex-grow에 지정된 숫자 비율로 차지"
- ㅡㅡㅡㅡ
- 속성값 - "0보다 큰 값 작성 시 유연한 박스로 변함 > 속성값에 설정된 비율만큼 각 아이템들 빈 공간 자동으로 채움(길이 증가)"
- 0 기본값
ㅡ flex-basis속성-아이템 기본크기 설정
- 키워드/문장 기록 =>
- flex-basis 속성 - "flex 아이템들 기본 크기 설정 (width속성과 별 차이 없음)"
- ㅡㅡㅡㅡ
- flex-direction 속성 : row > 아이템 너비/크기
- flex-direction 속성 : column > 아이템 높이/크기
- 속성 값 : 각종 단위의 수 들어감 - "지정크기보다 작았으면 그만큼 크기 증가 <> 지정크기보다 이미 컸으면 원래 상태/크기 유지"
- auto속성값 (기본값) - "아이템의 width값 = 컨텐츠 크기"
ㅡ JS
ㅡ JS-프로그래밍언어-객체-의미
- 키워드/문장 기록 =>
- 프로그래밍 언어에서 객체 의미
- 실제 사건/사물/인물 <> 객체 정의
- 특징/정보 <> 변수/프로퍼티/속성 정의
- 기능/동작 <> 메서드/함수
- ㅡㅡㅡㅡㅡㅡㅡㅡ
- 파이썬 객체 의미 - "클래스와 관련된 것"
- JS 객체(object) 의미 - "1. 데이터 저장 자료구조(기능)와 동작/기능을 모두 포함하는 복잡적인 데이터 유형을 하나로 묶어서 표현" + "2. 모든 데이터 타입-종류를 포괄하는 객체(자료형) 의미"
- 프로퍼티(property)=
name(이름) : value(값)- 객체 프로퍼티 참조
- 메서드(method)=
name(이름) : funtion(함수)- 객체 메서드 참조
- 주의 - "메서드 그 자체를 참조/출력 <> 메서드 참조> 실행 후 반환출력"
- 객체 메서드 참조
- 자료구조를 구현한 자료형
- 배열
- 키-값 쌍 데이터 저장 자료형
- 파이썬 - 딕셔너리 자료형
- 자바스크립트 - 객체 자료형
- 프로퍼티(property)=
- 프로그래밍 언어에서 객체 의미
ㅡ JS-null-undefined
- 키워드/문장 기록 =>
- null - "아직 값이 정해지지 않았음! 이라는 의미를 가진 타입"
- undefined - "타입이 정해지지 않았음! 이라는 의미를 가진 타입"
- 동등연산자-
== - 일치연산자-
===
ㅡ JS-변수 선언-const-let-var
- 키워드/문장 기록 =>
- JS-변수 선언/정의
- ㅡㅡㅡㅡ
- const - "한 번 값 할당 시 변경 x"
- 상수(변수) 정의
- 블록 스코프
- let - "변수 값 재할당 o"
- 블록 스코프
- var
- 함수 스코프
- 재할당 가능
- 호이스팅 발생
ㅡ JS-변수참조순서-스코프-유효범위
- 키워드/문장 기록 =>
- 변수 스코프 (Variable Scope) - "변수 정의되어 사용될 수 있는 범위" | 네임스페이스-내장변수-name-객체참조탐색순서-LEGB
- 변수 유효 범위 제한
- 코드 안정성
- ㅡㅡㅡㅡ
- JS-변수 참조 순서
- TDZ > 블록 스코프 > 함수 스코프 > 전역 스코프
- 전역 스코프(Global Scope)
- 프로그램 전체에서 접근 o
- 전역 변수
- 함수 스코프 (Function Scope) = 지역 스코프(Local Scope)
- 함수 내 유효 = 함수 외부 접근 x
- 블록 스코프
- 중괄호
{~}내부 유효 - let / const 키워드
- 중괄호
- 변수 스코프 (Variable Scope) - "변수 정의되어 사용될 수 있는 범위" | 네임스페이스-내장변수-name-객체참조탐색순서-LEGB
ㅡ JS-while-반복문
- 키워드/문장 기록 =>
- while문
- ㅡㅡㅡㅡ
- 문법
- break
- continue
ㅡ JS-dowhile-반복문
- 키워드/문장 기록 =>
do-while반복문 - "어떤 조건명제를 가지더라도 반드시 1번은 실행 후 조건 확인"- ㅡㅡㅡㅡ
- 문법
ㅡ JS-for반복문
- 키워드/문장 기록 =>
- for 반복문
- ㅡㅡㅡㅡ
- 문법
for (초기식; 조건식; 증감식) { 실행문 }- 초기식(initialization)
- 조건식(condition)
- 증감식(increment/decrement)
ㅡ JS-생성자함수-new-function-this
- 키워드/문장 기록 =>
- JS 생성자 함수 - "new 키워드 호출 > 함수의 인스턴스/객체 생성"
- function 키워드
- this 키워드
- ㅡㅡㅡㅡ
- 파이썬 클래스-초기화 메서드 - "클래스의 인스턴스/객체 생성"
- class 키워드
- self 키워드
- JS 생성자 함수 - "new 키워드 호출 > 함수의 인스턴스/객체 생성"
ㅡ JS-조건문-switch문-break
- 키워드/문장 기록 =>
- switch 문
- ㅡㅡㅡㅡ
- 특징 - " 자동 중단 x > break코드 작성"
- 문법
- 예시코드
- JS 내장된 생성자 함수
ㅡ JS-삼항연산자-문법
- 키워드/문장 기록 =>
- 삼항 연산자 - "조건에 따라서 변수에 값을 선택적 할당"
- ㅡㅡㅡㅡ
- 문법
조건 ? 참일 때 값 : 거짓일 때 값
ㅡ JS-문자열-비교연산자-동등-일치
- 키워드/문장 기록 =>
-
문자열 연산자 - "어떤 자료형과 함께 사용되는지에 따라 표현이 달라짐."
-
ㅡㅡㅡㅡ
-
+- 산술 연산자, 문자열 연산자 -
+= -
비교 연산자
-
ㅡㅡㅡㅡ
-
==동등 비교 연산자- 대충 비교 = 값을 비교
-
===일치 비교 연산자- 엄격하게 비교 = 타입을 비교
-
!=!==- "~같지 않다" 의미
-
ㅡ JS-HTMLCollection-유사배열-특징-진짜배열
- 키워드/문장 기록 =>
- getElementsByTagName - "모든 요소 가져와 HTMLCollection(유사 배열 객체)할당"
- 결과-object HTMLCollection-유사배열
- 유사배열=HTML 객체 집합=HTML 요소 컬렉션
- ㅡㅡㅡㅡ
- 객체 자체 출력
- 객체안에 있는 값에 접근 > 출력
- 유사배열 특징
- 키값에 인덱스 존재(인덱스 형태의 키)
- 대응하는 값 - 비어있는 객체
- 배열 특징 존재 - "인덱스/인덱싱 = 순회가능 = 접근가능"
- 진짜 배열 메서드 사용 x
- 진짜 배열
- object Array
ㅡ HTMLCollection-NodeList-공통점-차이점
- 키워드/문장 기록 =>
- HTMLCollection과 NodeList 공통점-차이점
- ㅡㅡㅡㅡ
- 공통점
- 유사 배열 자료구조 형태 - "반환출력 형태를 보면 같음"
- 차이점
-
- 어떤 메서드를 사용해 html요소를 선택하는지-선택 방법
- document.getElementsByTagName / document.getElementsByClassName / document.getElementsByName | JS-document.getElementsByName(name속성값)
- document.querySelectorAll
-
- 노드 포함 여부
- NodeList - "DOM의 다양한 노드들 모두 포함 가능"
- HTMLCollection은 - "HTML 요소만 포함 가능"
- 예시코드2
-
- 메서드 지원 여부
- forEach 메서드
-
ㅡ JS-DOM-객체출력-노드출력
- 키워드/문장 기록 =>
- 예시코드
- ㅡㅡㅡㅡ
- DOM에서 객체 출력 - "html태그 자체가 출력"
- HTML 태그가 DOM에서 객체로 표현
- DOM에서 노드 출력 - "특정 태그 안에 들어있는 데이터 출력"
- html태그 안에 들어있는 데이터들 (태그의 속성, 텍스트 등)은 트리 구조/노드안에 저장되어 표현
- 노드 - "데이터가 저장되는 지점/가상의 공간 느낌"
- html태그 = 객체
- 노드 모여서 > 트리구조 = 계층구조
ㅡ JS-DOM이용한 html 작업(제어)예시
- 키워드/문장 기록 =>
- JS DOM-문서 객체 모델
- JS-DOM 이용한 작업 예시
- ㅡㅡㅡㅡ
- html문서에 존재하는~
-
- 새로운 html 요소, 속성 추가 가능
-
- 기존 html 요소, 속성 제거 가능
-
- 기존 html 요소, 속성 변경 가능
-
- css 스타일 변경 가능
-
- 새로운 html 이벤트 추가 가능
-
- 모든 html 이벤트 반응 가능
-
- DOM 종류
-
- Core DOM
- 모든 문서
-
- HTML DOM
- html 문서
-
- XML DOM
- XML 문서
-
ㅡ document객체-HTML요소선택-메서드
ㅡ
dom에서 객체를 출력하다! 표현
- 예시
<div id="exampleDiv">This is a div element</div>
ㅡ
dom에서 노드를 출력하다! 표현
- 예시
This is a div element
ㅡ
Document객체를 이용해 html요소/태그 선택하는 메서드메서드를 호출해 html요소 선택 시 1개 일 때 반환출력되는 값/형태
- 예시-객체를 출력함
<li id="even" style="color: red;">두 번째 아이템이에요!</li>
ㅡ
메서드를 호출해 html요소 선택 시 2개 이상일 때 반환출력되는 값/형태
- 예시-(유사)배열 자료구조 자료형에 담아 출력함
1. HTMLCollection(3)
1. 0: li.odd
2. 1: li.odd
3. 2: li.odd
4. length: 3
5. [[Prototype]]: HTMLCollection
ㅡㅡㅡ
객체
{
"0": {},
"1": {},
"2": {}
}
=>
즉 기본적으로 메서드를 호출하고 반환/출력되는 값은 객체임1개면 요소 객체를 반환/출력
2개 이상이면 배열 자료구조에 담아서 반환/출력 = DOM(Document Object Model)에서 선택한 요소들은 유사 배열 자료구조로 반환
- 키워드/문장 기록 =>
- document 객체 - "document 객체는 웹 페이지/html 문서 그 자체/전체를 의미함 > 따라서 웹 페이지에 존재하는 html요소에 접근/사용하기 위해선 document를 통해 가능"
- ㅡㅡㅡㅡ
- HTML 요소 선택하는 Document 메서드 - "1개가 아닌 여러 개를 선택할 수 있는 메서드에는 s! 붙는다"
-
- document.getElementsByTagName(태그이름) - "해당 태그 이름 요소 모두 선택" | JS-document.getElementsByTagName(태그이름)
-
- document.getElementById(아이디) - " 해당 아이디 요소 선택" | JS-document.getElementById(아이디)
-
- document.getElementsByClassName(클래스이름) - "클래스에 속한 모든 요소 선택" | JS-document.getElementsByClassName(클래스이름)
-
- document.getElementsByName(name속성값) - "속성값을 가진 모든 요소 선택" | JS-document.getElementsByName(name속성값)
-
- document.querySelectorAll(선택자) - "넣은 css 선택자 모든 요소 선택" | JS-document.querySelectorAll(선택자)
-
- HTML 객체 선택 | JS-HTML객체집합-선택방법
ㅡ JS-document.getElementsByTagName(태그이름)
- 키워드/문장 기록 =>
- HTML 태그 이름을 이용한 선택
- ㅡㅡㅡㅡ
- document.getElementsByTagName(태그이름)
- 예시코드
- HTMLCollection - "여러 개 선택가능 > 배열자료구조 담아서 반환출력"
- 유사배열=객체집합=객체 컬렉션(obejct collection)
ㅡ JS-document.getElementById(아이디)
- 키워드/문장 기록 =>
- id 아이디를 이용한 선택 메서드
- ㅡㅡㅡㅡ
- document.getElementById(아이디)
- 예시코드
- 주의 - "해당 아이디를 가지고 있는 요소들 중 첫 번째 요소만을 선택/반환"
- 객체 출력 | JS-DOM-객체출력-노드출력
ㅡ JS-document.getElementsByClassName(클래스이름)
- 키워드/문장 기록 =>
- class 이용 html요소 선택 메서드
- ㅡㅡㅡㅡ
- document.getElementsByClassName(클래스이름)
- 예시코드
- HTMLCollection 배열 자료구조
- 주의 - "선택된 태그가 1개뿐이라도 배열에 담아 반환출력함 > 바로 출력 시 내부값 확인 x > 키값으로 인덱싱 > 해당 html객체 접근 > 객체가 가지고 있는 프로퍼티 접근해야 내부값 확인 가능"
- console.log($container); - "유사배열 자료구조 반환출력"
- console.log($container[0]); - "키값으로 인덱싱 > 해당 요소-객체 접근"
- console.log($container[0].innerText); - "해당 요소-객체안에 존재하는 프로퍼티 접근"
- console.log($container[0]); - "키값으로 인덱싱 > 해당 요소-객체 접근"
- console.log($container); - "유사배열 자료구조 반환출력"
ㅡ JS-document.getElementsByName(name속성값)
- 키워드/문장 기록 =>
- html name속성 이용 선택 메서드
- ㅡㅡㅡㅡ
- document.getElementsByName(name속성값)
- 예시코드
- 상황 - "여러 개 요소에 동일한 이름값이 설정되어 있는 상황"
- HTMLCollection 반환 x > NodeList 반환 o
ㅡ JS-document.querySelectorAll(선택자)
- 키워드/문장 기록 =>
- CSS 선택자 이용 html 요소 선택 메서드 - "css선택자를 이용할 수 있기 때문에 좀 더 구체적으로 선택 가능"
- ㅡㅡㅡㅡ
- document.querySelectorAll(선택자)
- NodeList 반환출력
- CSS 선택자
- 아이디 / 클래스 ...
- querySelector() 메서드 차이점
- 첫 번째 요소만을 선택/출력
ㅡ JS-html요소생성-내용출력-변경 방법
- 키워드/문장 기록 =>
- HTML 요소 생성-내용출력-내용변경 메서드
- ㅡㅡㅡㅡ
- document.createElement(HTML요소) - "요서 생성"
- document.write(텍스트) - "텍스트 출력"
- 객체-innerHTML 프로퍼티 - "내용변경"
ㅡ JS-html요소-이벤트핸들러-추가방법
- 키워드/문장 기록 =>
- html요소 이벤트 핸들러 추가해주는 메서드
- ㅡㅡㅡㅡ
document.getElementById(아이디).onclick = function(){ 실행할 코드 }- onclick-이벤트
ㅡ JS-HTML객체집합-선택방법
- 키워드/문장 기록 =>
- html 객체 선택 메서드
- ㅡㅡㅡㅡ
- HTML 객체 집합(object collection) 선택
ㅡ DOM-노드의미-트리구조-이미지
- 키워드/문장 기록 =>
- 노드 node - "DOM으로 인해 웹 페이지를 구성하는 HTML요소와 HTML요소안에 존재하는 속성값/텍스트값.데이터들이 객체,노드들로 표현 > 노드 트리구조 형성" | DOM으로 인한 HTML문서-노드-계층구조-트리구조-예시코드
- ㅡㅡㅡㅡ
- 트리구조로 저장 = 노드 관계 존재
- 트리구조=계층구조=노드트리(node tree)
- 이미지
- 최상위 레벨=루트 노드(root node)
- 최하위 레벨=텍스트 노드
노드관계-부모-자식-형제-조상-자손" tabindex="-1">ㅡ 노드관계-부모-자식-형제-조상-자손
- 키워드/문장 기록 =>
- 노드 관계 - "노드들이 모여 노드 트리 구성 = 계층구조 = 관계 존재"
- 이미지-계층적 관계
- ㅡㅡㅡㅡ
- 최상위 레벨=루트 노드(root node)
- 부모 노드(parent node)
- 자식 노드(child node)
- 형제 노드(sibling node) - "같은 부모 노드를 가지는 노드들 관계"
- 조상 노드(ancestor node) - "상위에 존재하는 모든 노드"
- 자손 노드(descendant node) - "하위에 존재하는 모든 노드"
노드종류-문서-요소-속성-텍스트-주석" tabindex="-1">ㅡ 노드종류-문서-요소-속성-텍스트-주석
- 키워드/문장 기록 =>
- 노드 종류 - "html문서를 구성하는 모든 것은 객체/노드로 표현/저장" | DOM으로 인한 HTML문서-노드-계층구조-트리구조-예시코드
- ㅡㅡㅡㅡ
- 문서 노드(document node) - "html문서 전체를 문서 노드에 저장"
- 요소 노드(element node) - "html문서 내 존재하는 html요소는 요소 노드에 저장"
- 특징 - "속성노드 가질 수 있음"
- 속성 노드(attribute node) - "html 요소에는 속성 존재 > 이 값은 속성노드에 저장"
- 주의 - "속성 노드는 해당 노드의 속성일 뿐 자식노드 x"
- 텍스트 노드(text node) - "html문서 내 존재하는 텍스트는 텍스트 노드에 저장"
- 주석 노드(comment node) - "html문서 내 존재하는 주석은 주석노드에 저장"
노드접근방법-노드간관계이용-프로퍼티이용" tabindex="-1">ㅡ 노드접근방법-노드간관계이용-프로퍼티이용
- 키워드/문장 기록 =>
- HTML 문서 태그-노드 접근 방법
- ㅡㅡㅡㅡ
-
- getElementsByTagName() 메서드 이용 | JS-document.getElementsByTagName(태그이름)
-
- 노드 간 관계 이용 접근 - "노드 간 관계에 대한 값이 프로퍼티에 저장되어 있음"
- parentNode : 부모 노드
- childNodes : 자식 노드 리스트
- firstChild : 첫 번째 자식 노드
- lastChild : 마지막 자식 노드
- nextSibling : 다음 형제 노드
- previousSibling : 이전 형제 노드
-
- 노드에 대한 정보가 들어있는 프로퍼티 이용 접근 - "다양한 데이터 존재 > 노드에 저장 > 어떤 데이터가 할당되는지에 따라서 노드종류/이름 달라짐"
ㅡ Event-이벤트
이벤트핸들러-기능-용어이해-익명-콜백함수" tabindex="-1">ㅡ 이벤트핸들러-기능-용어이해-익명-콜백함수
- 키워드/문장 기록 =>
- 이벤트-이벤트핸들러-용어이해
- ㅡㅡㅡㅡ
- 이벤트 핸들러(함수) - "두 가지 주요 기능 수행/정의되어 있음"
-
- 특정한 이벤트 감지하는 기능
-
- 특정한 이벤트 발생 후 연결된 다른 함수를 호출하는 기능 - "이벤트 핸들러 실행문의 내용을 다른 함수로 정의"
-
- 예시코드
window.onload = function() {~}function() {~}= 익명함수(anonymous function) = 콜백 함수(callback function)- 비동기적인 상황 - "특정 작업의 완료 대기하지 않고 > 다음 작업 수행 시작"
- 네트워크 요청 상황
ㅡ 이벤트(event)용어-핸들러-리스너
- 키워드/문장 기록 =>
- 이벤트 event 용어 - "웹 페이지 html요소에 이벤트 핸들러 등록 > 사용자 동작이나 특정 사건 발생 시 원하는 동작을 수행"
- ㅡㅡㅡㅡ
- 기술적인 의미
- 웹 페이지의 특정한 사건/상황 발생/변화 감지 기술
- 개념적인 의미
- 특정한 사건/상황! 발생했다는 사실을 의미
- 웹 상에서 특정한 사건/상황
- 버튼 클릭/ 키보드 입력/ 입력 폼 제출/로딩
- 동적인 페이지 = 반응형 페이지 = 사용자와 상호작용하는 페이지
- 이벤트 핸들러(event handler)=이벤트 리스너(event listener) 용어
- 이벤트 발생 시 그 부분에 대한 처리 담당 함수(코드)
- 특정 이벤트와 연결된 이벤트 리스너
- ex) 마우스 클릭 이벤트 <> 마우스 이벤트 핸들러(함수) 실행
이벤트리스너-등록-삭제방법-프로퍼티-메서드" tabindex="-1">ㅡ 이벤트리스너-등록-삭제방법-프로퍼티-메서드
- 키워드/문장 기록 =>
- 이벤트 리스너(event listener)=이벤트 핸들러(event handler) - "특정 이벤트 발생 시 처리를 담당하는 함수"
- ㅡㅡㅡㅡ
- 이벤트 리스너 등록
- 주의 - " 프로퍼티로 등록 시 on! 사용 <> 메서드로 등록 시 on! x"
-
- 객체-요소에 프로퍼티로 등록하는 방법 | 이벤트리스너-프로퍼티로-등록-JS변수-html속성
-
- 객체-요소에 메서드로 이벤르 리스너 등록/전달 | 이벤트리스너-등록메서드-전파방식
-
- 이벤트 리스너 삭제
- removeEventListener() 메서드
- 예시코드
- onclick 이벤트 / alert 함수/ mouseover 이벤트 / mouseout 이벤트
이벤트리스너-등록메서드-전파방식" tabindex="-1">ㅡ 이벤트리스너-등록메서드-전파방식
- 키워드/문장 기록 =>
-
- 객체-요소에 메서드로 이벤트 리스너 등록/전달
- ㅡㅡㅡㅡ
- addEventListener() 메서드
- 장점 - "여러 개 이벤트 리스너 등록 가능"
- 문법
대상객체.addEventListener(이벤트명, 실행할이벤트리스너, 이벤트전파방식)- false-버블링(bubbling) 방식
- true-캡처링(capturing) 방식
- attachEvent() 메서드
-
ㅡ 이벤트리스너-프로퍼티로-등록-JS변수-html속성
- 키워드/문장 기록 =>
-
- 객체-요소에 프로퍼티로 등록하는 방법
- ㅡㅡㅡㅡ
- 1-1. 자바스크립트 코드에서 해당 이벤트에 실행시킬 내용을 프로퍼티 등록
- 단점 - "이벤트 타입별로 오직 하나의 이벤트 리스너 등록 가능"
- 1-2. html 태그 안 속성으로 이벤트 리스너 등록
- 단점 - 가독성, 유지보수
-