- html(구조), css(디자인), js(동적)
- html 작성 :
<body><tag 속성="값" 속성="값"></body> - css 작성 :
<head><style>tag {디자인속성:값; 속성:값;}</style></head>
- 태그 선택자 :
태그 {속성:값;} - 아이디 선택자 :
#아이디명 {속성:값;} - 클래스 선택자 :
.클래스명 {속성:값;} - 부모-자식 선택자 :
부모 > 자식 {속성:값;} - 부모-자손 선택자 :
부모 자손 {속성:값;} - 형제 선택자 :
기준형제+선택형제 {속성:값;} - 다중 형제 선택자 :
기준형제~선택형제들 {속성:값;} - 모든 선택자 :
* {속성:값;} - 수열(nth) 선택자
- 형제가 2개 이상일 때 원하는 형제를 선택하는 선택자
형제선택자:nth-child(n): n번째 형제형제선택자:nth-child(add): 홀수형제선택자:nth-child(even): 짝수
<style>>#>.>tag
<tag style="">우선순위 높음#id {}.class {}tag {}우선순위 낮음
- 자식이 2개 이상일 때 부모에 속성을 적용하는 것으로 자식에게 공통 값을 적용할 수 있다.
ul-li*5관계 시ul {color:rad}부모 ul의 color를 li 자식에게 상속시킨다.- 꾸미려는 css 속성이 글자에 관련된 속성(글꼴, 글자크기, 글자색상) 본인에게 직접 적용하는 것을 권장함.(우선순위가 꼬여서)
- 모든 컴퓨터 기본글꼴(고딕, 궁서, 바탕 등)이 아니라면 반드시 웹글꼴을 사용하여 웹접근성을 높여줘야함.
- 웹 글꼴 연결 순서는 작성한 CSS보다 반드시 위에 작성하기
- 글꼴명이 한글이거나 공백이 포함된 경우 따옴표 붙여서 작성하기
width:0px: 가로크기(vm, % 상대크기단위가능)height:0px: 세로크기(vh, % 상대크기단위가능)padding:0px: 안쪽여백(피그마 AutoLayout 패딩)display:;: 요소의 형태유형 변경속성block,inline,inline-block- inline 변경가능요소 : h1, p, address 등 블록
h1 {display:inline;}- 내용만큼만 크기 인식
- 옆으로 나열
- block 변경가능요소 : a, span, em, del 등 인라인
a {display:block;}- 크기(w100%, h(Hug))와 여백값을 인식
- 옆으로 정렬이 아닌 새로운 행으로 나열
- inline-block 값은 모두 적용 가능
h1 {display:inline-block;}a {display:inlineblock;}- 크기와 여백값을 인식
- 옆으로 나열(Hug), 넘치면 자동 줄바꿈됨
margin: 바깥쪽(형제 사이) 여백(피그마 기준 간격)margin:10px 20px상하/좌우margin:10px모든 방향 10 통일margin:10px 20px 30px상/좌우/하margin:10px 20px 30px 40px상/우/하/좌(시계방향)- 위 4개 속성 방향은 padding과 동일
margin:0 auto: 레이아웃 가운데배치 (너비가 화면보다 작아야함)
table > tr > th or tdtable {width:300}열이 3개일 경우 100씩 자동 분배th:nth-child(1) {width: 50;}- 전체 너비 300 중 첫번째 열만 50을 가지고 나머지값은 나머지 열들에게 자동 분배
- (열 안 내용 크기에 따라 달라짐)
width, height, padding속성은 같은 수평/수직 방향에 해당하는 열에 함께 적용됨.- 위 특징 때문에 공통 여백 및 크기는 1행 라인에 작성
table->thead->tr->thtable->tbody->tr->thtable->tbody->tr->tdtable->tfoot->tr->thtable->tfoot->tr->td
- 합치기 속성은 무조건
th또는td태그에 입력가능 - 수평 열 합치기
<th colspan+"합치는 열 개수">내용</th>- 위 속성ㅇ은 합치는 열 중 첫번째 시작태그에 작성하기
- 그 외 나머지 칸은 지우거나 주석걸기
- 수직 열 합치기
<td rowspan+"합치는 열 개수">내용</td>
* autofocus : 페이지 접속 시 바로 커서 위치 활성화
* placeholder : 안내메세지 표시
* `input::placeholder {}` 안내메세지 디자인
* `input:focus {}` 입력칸 활성화 표시 디자인
button type="button" 이벤트="자바스크립트명령어작성"- 버튼에 이벤트 작성 시 반드시 type는 button(범용기능)
onclck="": 클릭 시 "명령어" 실행 이벤트window.location.href='실행주소'- (위)
a href="실행주소"와 동일한 JS 명령어
- (위)
button:hover {}: 버튼에 마우스 올렸을 시 디자인 변경
head태그 안reset.css연결보다 위에 작성@font-face에 비해 사용이 간편함.- 작성한 html에서만 사용할 수 있다는 단점있음.
reset.css파일 내 가장 위쪽 라인에 작성@font-face {*@font-family:'사용한 글꼴 이름 임의작성';*srd:url(글꼴주소);*font-weight:글꼴굵기(200~700 글꼴에 따라 다름);*font-style:기울기(nomal, italic 등);*font-display:swap;}
- reset에 한번 연결해두면 모든 html에서 사용 가능
@font-face {font-family:'사용할글꼴명'}(예) 컴퓨터글꼴설치선택자 {font-family:'웹글꼴로 불러온 글꼴명'}(예) 포토샵글꼴사용
display:block: 인라인을 수직으로 나열display:inline-block: 블록을 수평으로 나열- 기본 여백 3px 발생 -> 해결법
margin-right:-3px
- 기본 여백 3px 발생 -> 해결법
margin:상하여백 auto: 크기가 설정된 블록 또는 인라인을 화면 가운데 배치
float:left: 형제 요소들을 왼쪽으로 순차정렬float:right: 형제 요소들을 오른쪽으로 순차정렬- 2개 이상 작성 시 역순으로 정렬됨
float:none: float 제거clear:both: 이전 형제에 작성된 float 정렬해제
position:relative- 태그의 기존 위치에서 상/하/좌/우로 약간의 이동이 필요할 때
- 자식 또는 자손요소에 absolute가 있어서 부모 기준이 필요할 때
position:absolute- 부모, 형제 요소와 겹치는 디자인 특징이 필요할 때
- block 요소에 absolute 설정 시 inline-block처럼 너비를 내용만큼 인식함 -> 너비재입력
- 부모 후보들(dl, dt)에게 추가 position 설정 안할 시 body 기준으로 움직임
dl dt p {position:absolute;}
z-index- absolute로 인해 겹쳐진 형제 요소들 사이의 중첩순서가 필요할때
- 0~999 작성가능 (단위작성없이 숫자만 작성)
- position 속성이 없으면 z-index 적용 불가
- 시각적인 목적으로 디자인 배경, 선 등의 요소가 필요할 때 HTML태그없이 CSS만으로 디자인을 만드는 선택자
부모선택자::after {}-> 부모의 마지막 자식에 디자인 생성부모선택자::before {}-> 부모의 첫번째 자식에 디자인 생성
content:''-> 내용인식속성, 글자 필요한 디자인이 아닐 경우 '' 빈 따옴표display, background-color, width, height
- +,-,*,/,% 다양한 사칙연산 사용 가능
- 추가 괄호를 통한 복잡한 계산 가능
연산자 앞 뒤 여백 필수
1+1(X)1 + 1(O) width, height, margin, padding등 숫자 입력 속성 활용 가능
li {width:calc(100% / 4)};- 4개의 li를 같은 크기로 나누기
li {width:calc((100% - 30px) / 4 )};- 4개의 li에 각 10px 씩 사이여백을 주기 위해 전체 부모 100% 너비 중 10*3 총 30px을 빼고 나머지 값을 4로 나누기
li {width:calc((100% - (10px * 3) / 4 )};
li {display:block; height:calc(100% - 50px)};- a의 크기를 인식하게 만들고 50px을 뺀 나머지 부모크기주기
- 정렬하고자 하는 2개 이상 형제관계 대상 체크
ul > li*5 > a-> 형제lidl > dt + dd*4 +dt +dd*2-> 형제dt, dddiv > a*3 > span-> 형제a
- 체크한 1번의 부모 체크
ul > li*5 > a-> 부모uldl > dt + dd*4 +dt +dd*2-> 부모dldiv > a*3 > span-> 부모div
- 부모에 메인축/교차축 확인하며
display:flex부터 명령 시작하기
- 주의사항 :
display:flex먼저 작성해야 함. flex-flow:row nowrap: 기본값(메인축 수평, 줄바꿈 안함)flex-flow:row wrap: 메인축 수평, 가로크기에 따라 줄바꿈함flex-flow:column nowrap: 메인축 수직, 줄바꿈 안함flex-flow:column wrap: 메인축 수직, 세로크기에 따라 줄바꿈함 메인축이란? 부모 안 2개 이상의 형제 정렬 방향 교차축이란? 부모 안 2개 이상의 형제 교차 방향(메인 반대축)
justify-contents:flex-start: 메인축이 수직이면 위쪽, 수평이면 왼쪽flex-end: 메인축이 수직이면 아래, 수평이면 오른쪽space-between: 메인축이 수직이면 위-아래 양쪽끝, 수평이면 왼쪽-오른쪽 양쪽 끝space-around: 메인축이 수직이면 위-아래 양쪽여백 주고 균등 배치, 수평이면 왼쪽-오른쪽 양쪽여백 주고 균등배치center: 메인축이 수직이면 수직중앙, 수평이면 수평중앙
align-items: 교차축이 1줄일때flex-start, flex-end, center위 메인축과 뜻 동일
align-contents: 교차축이 2줄 이상일때flex-start, flex-end, center, space-between, space-around위 메인축과 뜻 동일, 값 동일
/* Firefox */
html {scrollbar-width: 10px;;scrollbar-color: #222 #e73b3b;}
/* Opera */
html::-o-scrollbar {width: 10px;}
html::-o-scrollbar-thumb {background-color: #222;border-radius: 5px;}
/* Chrome, Safari, Edge 등 웹킷 기반 브라우저 */
::-webkit-scrollbar {width: 10px;}
::-webkit-scrollbar-track {box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.3);}
::-webkit-scrollbar-thumb {background-color: #222;border-radius: 5px;}
:hover선택자로 인해 기존속성에서 다른속성으로 변경되는 CSS에 애니메이션을 주고 싶을 때선택자 {color:#000; font-size:1ram;}선택자:hover {color:#fff;}- 위 선택자 예시) color만 hover시 변경됨.
- 아래 연결 동작) 변경된 color만 trandition 적용.
선택자 {transition:color 1s; color:#000; font-size:1ram;}- 문법 :
transition:변경속성 지속시간 속도 지연시간 transition:color 1s linear 2s- 2초 기다리고 1초동안 일정속도로 color 속성에 애니적용
@keyframes 애니메이션이름 {적용분기}선택자 {animation:키프레임애니메이션이름 추가속성}
hover + animation은 페이지로딩시 등장 애니메이션, 스크롤 내릴 시 나타나는 컨텐츠의 등장 애니메이션 등에 사용함. (사용자 hover 동작과 대부분 관계없음)
@keyframes a {0% {opacity:0;} 100% {opacity:1;}}
* 애니메이션이름 a 생성 후 안 보이다가 보이는 애니메이션
선택자 {animation:a 1s ease 0.5s alternate 3;}- 특정 선택자에 0.5초 기다리고 1초동안 a 애니메이션을 ease 가속도로 정방향->역방향 순서로 3번 재생하기(무한 재생은
infinite)
- 특정 선택자에 0.5초 기다리고 1초동안 a 애니메이션을 ease 가속도로 정방향->역방향 순서로 3번 재생하기(무한 재생은
- transition, animation 속성과 함께 특이한 애니메이션에 자주 활용하는 변형속성
- scale()크기, rotate()회전, skew()기울기, transition()이동 기능 있음.
transform:scale(1)비율 기준 1 == 100%transform:rotate(20deg)반시계 방향 회전은-20degtransform:skew(-20deg)transform:transition(10px, 20px)x, y 이동 순서로 작성- 다른 모든 속성은 중심이 왼쪽 상단, transform만 유일하게 가운데가 기준점
- 기분점 변경방법 :
transform-origin:x y
-webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; color: transparent;