크로스 브라우징 : 여러 브라우저에서 동일한 사용자 경험을 줄 수 있도록 제작하는 기술, 방법
- 크로스 브라우징 이슈가 예전보다 조금씩 사라지고 있음
뷰포트 Viewport : 하나의 웹 페이지가 렌더링되는 구역
🔵 웹 이미지
- 비트맵 : 확대/축소 시 계단 현상, 정교하고 다양산 색상 표현가능 (jpg, png)
- 벡터 : 확대/축소에서 품질저하X, 용량 변화X, 정교한 이미지 표현하기 어려움 (svg)
Material Design
- JPG : 압축률이 좋음, 손실 압축(용량 쉽게 조절 가능)
- PNG : 비손실 압축, Alpha Channel 지원(투명한 부분 사용가능)
- GIF : 이미지 파일 내에 이미지 및 문자열 같은 정보들 저장, 8비트(256) 색상만 지원
- WEBP : 구글이 개발한 이미지 포맷, 손실/비손실 압축 지원, 애니메이션 지원, Alpha Channel 지원 (JPG, PNG, GIF 모두 대체 가능 / IE 지원 불가)
- SVG : 마크업 언어 기반의 벡터 그래픽을 표현하는 포맷, 해상도의 영향에서 자유로움, 파일 / 코드 삽입 가능
오픈소스 라이선스 : Apache License, MIT License, BSD License
Beerware
프로젝트 단위는 폴더
ctrl+alt+S : 모든 파일 저장
DOCTYPE : DTD = Document Type Definition, 마크업 언어에서 문서 형식 정의
head 태그 : 웹페이지에 보이지 않는 정보를 작성하는 범위
브라우저는 자동으로 index.html 파일을 찾음
- 브라우저 스타일 초기화
reset.css cdn
reset-css CDN by jsDelivr - A CDN for npm and GitHub
- emmet
<태그 Attribute속성="Value값">내용</태그>
<p>태그는 블록 요소
defer 속성 : script 요소에 HTML구조가 준비된 후 js를 해석하는 속성
🔵 선택자
- : 인접 형제 선택자 Adjacent Sibling Combinator
~ : 일반 형제 선택자 General Sibling Combinator
# tabindex 속성
탭 키를 이용해 focus 할 수 있는 순서 지정하는 속성 > Focus가 될 수 있는 요소 만들 수 있음
tabindex="-1"
하나의 페이지에서 focus는 한 요소에만 적용 가능
# 가상 클래스 선택자
- nth-child(n)
형제 요소 중 n번째인 것 선택
div:nth-child(2){...} div태그 중 2번째
- n은 0부터 시작 Zero-Based Numbering
div:nth-child(2n){...} div태그 중 짝수 번째
div:nth-child(2n+1){...} div태그 중 홀수 번째
div:nth-child(n+1){...} div태그 중 2번째부터 선택
- not()
- :not(span){...} span태그가 아닌 것 선택
🔵가상 요소 선택자 Pseudo-Elements
- .box::before{ content:"안녕";} 요소 내부 앞에 내용 삽입함 / 인라인 요소
- .box::after{ content:"안녕";} 요소 내부 뒤에 내용 삽입함 / 인라인 요소
🔵 inherit : 강제 상속
기본적인 폰트 사이즈는 16px
em : 폰트 사이즈가 기준
rem : 루트 폰트 사이즈가 기준
vw : 뷰포트 기준 가로 너비 / vh : 뷰포트 기준 세로 너비
margin : top right bottom left (시계방향)
dashed 파선
rgba(x,x,x,x) 빛의 삼원색 + 투명도(0~1사이의 값)
box-sizing : border-box; 가로 너비, 세로 너비를 그대로 유지하고 싶을 경우 사용 (요소+테두리+내부 여백 크기 다 고려)
flex 1차원 레이아웃
grid 2차원 레이아웃
opacity : 투명도, 0~1 사이의 소수점 숫자
font-style : 글자 기울기
font-weight : 글자 두께
line-height : 줄 두께(?)
font-family : 글꼴 계열 쓰기!!, 글꼴이름 띄어쓰기 있으면 ""로 묶기
sefit 바탕체 계열
sans-serif 고딕체 계열
monospace 고정너비 글꼴 계열, 가독성 높음
cursive 필기체 계열
fantasy 장식 글꼴 계열
text-align 텍스트 수평정렬
background-image:url("경로"); 기본적으로 바둑판식 정렬
background-repeat : no-repeat; 바둑판식 정렬되지 않도록
배경 이미지 스크롤
background-attachment:scroll;
background-attachment:fixed;
position
relative 요소 자신을 기준
absolute 위치상 부모 요소 기준 / block 요소로 바뀜
fixed 뷰포트 기준 / block 요소로 바뀜
sticky 스크롤 영역 기준
요소 쌓임의 조건
- position 있는지
- z-index 값 비교
- html 쓰인 순서
display: flex / inline-flex;
flex-wrap : wrap; 줄바꿈
주축 정렬 방법 / 수평정렬
justify-content:flex-start;
justify-content:flex-end;
justify-content:center;
교차 축 여러 줄 한번에 정렬 방법 / 수직정렬
align-content: flex-start;
align-content: flex-end;
align-content: center;
교차 축 한 줄 정렬 방법
align-items : flex-start;
align-items: flex-end;
align-items: center;
main-axis 주축 / cross-axis 교차 축
order 기본값은 0, 숫자 작을수록 먼저
flex-grow 기본값은 0, flex item 증가 너비 비율
flex-shrink 기본값은 1, flex item 감소 너비 비율
flex-basis 공간 배분 전 기본 너비
전환
transition : 속성명 지속시간 타이밍함수 대기시간;
transition-property 기본값은 all
transition-duration 기본값은 0s / 필수 포함 속성
transition-timing-function 타이밍Easing 함수 지정
- ease 느림빠름느림
- linear 일정하게
- ease-in 느림빠름
- ease-out 빠름느림
- ease-in-out 느림빠름느림
transition-delay 기본값은 0s
변환
- 2D 변환 함수
translate(x,y) 이동 / translateX(x) / translateY(y)
scale(x,y) 크기
rotate(degree) 회전
skewX(x) 기울임 / skewY(y)
- 3D 변환 함수
perspective(n) 원근법
rotateX(x) 회전 / rotateY(y)
perspective 속성 vs perspective 함수
- 속성
관찰 대상의 부모에 적용
perspective: 600px
- 함수
관찰 대상에 적용
원근법 나타내는 함수 perspective()는 맨 앞에 작성해야함
transform: perspective(500px) rotateX(45deg);
skew() 마름모 만들기 / 기울임 추가
요소의 뒷면 보일지 말지
backface-visibility: hidden;
클래스 속성 작명법
BEM Block Element Modifier
요소__일부분 Underscore(Lodash) 기호로 요소의 일부분 표시
요소--상태 Hyphen(Dash) 기호로 요소 상태 표시
- position 값이 fixed, absolute는 가로너비가 최소한으로 줄어듦
일반적으로 블럭요소는 가로너비가 최대한 늘어날려고 함
'Web > HTML CSS JS' 카테고리의 다른 글
| [SCSS] 기초 정리 / Sass (0) | 2022.10.11 |
|---|---|
| [JS] 정규표현식 RegExp / 정규식 (0) | 2022.10.04 |
| [JS] local storage / Query String (0) | 2022.10.04 |
| [JS] 기초 정리 / IIFE / 호이스팅 / 타이머 함수 / 전개 연산자 (0) | 2022.09.29 |