Front end
백엔드 개발을 목표로 하더라도 협업과정에서 상대 파트에 대한 기본적인 이해는 필요하기 때문에 프론트엔드 웹 개발에 주로 사용되는 HTML
CSS
JS
에 대한 기초 지식이 필요하다.
HTML
tag/
><html> <head> <title>page title</title> </head> <body> <h1>h1</h1> <div>content1 <span>content2</span> </div> </body> </html>
html
> : HTML의 루트(최상단 요소), 루트 요소라고도 함.html
>요소의 후손이다.head
> : 기계가 식별할 수 있는 문서 정보(메타데이터)를 포함한다. 정보는 제목, 스크립트, 스타일시트 등이 있다.title
> : 브라우저의 제목 표시줄, 페이지 탭에 보이는 제목.body
> : 문서의 내용을 나타낸다. 한 문서에는 하나의 <body
>만 존재한다.h1
> : <h1
> ~ <h6
> 은 6단계의 구획 제목을 표현한다. h1이 가장 높은 단계./tag
> : 해당 태그가 끝났음을 선언한다.div
> : 한 줄을 차지함. 통용 컨테이너.nav
> : 문서의 부분 중 현재 페이지 내, 또는 다른 페이지로의 링크를 보여주는 구획. 예제, 목차, 색인 등link
> : 현재 문서와 외부 리소스의 관계 명시.span
> : 컨텐츠 크기만큼 자리 차지함. 통용 인라인 컨테이너.img
> : 문서에 이미지 삽입.a
> : 앵커, href 특성을 통해 다른 페이지나 특정 위치로 연결하는 하이퍼링크를 만든다.p
> : 하나의 문단.li
> : 목록의 항목.ul
> : 정렬되지 않은 목록. 불릿으로 표현됨.ol
> : 정렬된 목록. 숫자 목록으로 표현됨.header
> : 소개 및 탐색에 도움을 주는 콘텐츠. 제목, 로고, 검색폼, 작성자 등.footer
> : 가장 가까운 구획 콘텐츠나 구획 루트의 푸터를 나타낸다. 구획의 작성자, 저작권 정보, 관련 문서 등. textarea
> : 멀티라인 텍스트 입력.header
> , <article
> , <mark
>Div
> , <p
> , <h1
> , <ul
> , <li
> 등span
> , <a
> , <em
> 등img
> , <input
> , <buttton
> 등CSS
body { color: red; font-size: 30px; }
body : selector 셀렉터
{~} : Declaration Block 선언 블록
color: red; : Declaration 선언
font-size : >Property 속성명
30px : Value 속성값
; : 선언 구분자
color
: 텍스트의 색상을 변경. HEX (16진수로 RGB; Red Green Blue가 표현된 값) 또는 주요 색상의 이름을 속성 값으로 가짐.font-size
: 글자의 색상을 변경.font-family
: 글꼴의 속성. 폰트 변경.overflow
: 컨텐츠의 내용이 박스보다 많을 경우 처리 방식 선택..red { color: #ff0000; /* 글자 색상 */ }
red class의 color 속성에 #ff0000 값을 할당
.box { background-color: #aa33ee; /* 배경 색상 */ border-color: #55aaff; /* 테두리 색상 */ }
box class의 background-color 속성에 #aa33ee 값을 할당
box class의 border-color 속성에 #55aaff 값을 할당
<nav style="background: #eee; color: blue">...</nav>
link
> 태그 안에서 href
속성을 통해 파일을 연결. (권장)<link rel="stylesheet" href="index.css" />
style
> 내에 작성<h4 id="navigation-title">This is the navigation section.</h4>
특정 h4에 id 할당.
#navigation-title { color: red; }
id로 요소를 선택하여 스타일링.
<ul> <li class="menu-item">Home</li> <li class="menu-item">Mac</li> <li class="menu-item">iPhone</li> <li class="menu-item">iPad</li> </ul>
여러 요소에 같은 class 부여.
.menu-item { text-decoration: underline; }
class로 요소를 선택하여 스타일링.
5 : !important
4 : Inline style(style attribute in HTML)
3 : ID(#) selector
2 : class(.), pseudo-class(:) selector
1 : element selector(p,div,li,etc)
0 : universal selector(*)
높은 우선순위를 가진 스타일링이 적용됨.
같은 레벨 다중 적용시 가장 아래 라인 적용
Box : 박스는 항상 직사각형으로, 너비(width)와 높이(height)를 가진다. CSS를 이용해 속성 & 값으로 크기 설정.
Box Model
Margin : border 밖의 여백
Border : 테두리
Padding : border 안의 여백
Border : 각 영역이 차지하는 크기를 파악할 수 있고, 레이아웃을 만들면서 그 크기를 시각적으로 확인 가능.
border-width
, 스타일border-style
, 색상border-color
등 border 속성에 다양한 세부 속성을 추가할 수 있다.p { border: 1px solid red; }
두께 1px , 실선 스타일 , 색상 red 적용
Margin, Padding : 태그에 여백을 준다. 순서는 top right bottom left 시계방향.
p { margin: 10px 20px 30px 40px; }
상 10px 우 20px 하 30px 좌 40px 각각 적용
항목이 두 개일 경우 상하/좌우로 적용, 한 개일 경우 모두 동일 적용.
{ box-sizing: border-box; }
여백과 테두리를 고려한 계산법 border-box를 적용하는 코드
전체 선택 셀렉터*
로 문서 전체 적용