<한줄요약>

HTML : 웹 문서 구조를 표현하기 위한 언어

CSS : HTML로 짜여진 구조를 어떻게 화면에 띄울지 결정

 

1. HTML

 

-  hypertext markup language

-  웹을 표현하는 문서 양식

-  tag를 사용해 문서 표현

-  시작태그 <tag> 와 종료태그 </tag> 사이에 내용을 정의

-  각 tag별 의미가 있으며, 이에 해당하는 내용을 화면에 표시한다

 

Web의 작동 원리

-  client가 서버에 요청

-  서버는 요청을 분석 후 결과를 HTML로 전송

-  client는 받은 HTML을 브라우저에 표시

 

웹 브라우저 : tag를 해석하여 이를 화면에 표시

 

 

2. CSS

 

-  HTML문서가 화면에 나타나는 양식을 정의

-  동일한 HTML 구조에 다른 CSS를 적용 가능

 

-  CSS 규칙 - 선택자 / 선언 2 part

-  선택자 : style이 어디에 적용될 것인지

-  선언 : 어떤 style이 적용될 것인지

-  선언은 속성:값; 의 형식으로 이루어진다.

-  속성 : 바꾸고 싶은 요소

-  값 : 바뀔 value

ex) .img { display:none; } = img class를 표시하지 않겠다

-  여러 선택자에 같은 style 적용 : 선택자를 , 로 나열한다

 

 

3. HTML문서에 CSS 적용 방법

 

외부 스타일 시트

 <link rel="stylesheet" type="text/css" href="css파일경로">

 @import url("css파일경로");

 등 외부의 css 파일을 호출

 장점 : 여러 페이지에 동일한 스타일 쉽게 적용. 한번 수정하면 전체 다 변경 가능

 

내부 스타일 시트

 <style> 태그를 이용해 페이지 내부에 css 규칙을 작성

 <style>은 <head>안에 위치한다.

 단점 : 여러 페이지에 중복적용해야하면 ctrl c+v해야

 

inline 스타일 시트

 각 tage 내부의 style attribute에 css를 적용

 style의 값은 css규칙

 가장 적용 우선순위가 높은 방법

 

 

4. HTML 개요

 

모든 tag에 있는 global attribute

 

 class="classname" : 클래스 이름을 지정. 여러 클래스 지정 가능. 다른 tag의 class값과 중복 가능

 id="idname" : ID를 지정. 다른 tag의 id와 중복 불가(에러는 나지 않는다)

 style="" : css지정

 title="" : title 지정. 마우스 갖다댔을때 나오는 텍스트

 dir="" : 텍스트 방향 지정. 기본적으로 ltr(left to right)

 

주석

 <!-- 주석내용 -->

 

html문서의 전체 구성

 html, head, body

 

<html> : HTML문서임을 정의한다. head와 body로 구성

 

<head> : HTML문서의 사전 처리 부분, 대부분 화면에 나타나지 않는다

-  <title> : 브라우저 탭의 이름(이건 화면에 나타난다)

 <meta> : 메타데이타 (문서 작성자, 일자, 인코딩 정보 등등)

 <style> : 내부 스타일 시트

 <linke> : 외부 파일 참고

등을 기술한다

 

<body> : HTML문서의 본문. 브라우저에 표시되는 부분

id속성을 이용해 tag의 식별 가능

-  class속성을 이용해 CSS 부여

-  <h1~6> 속성으로 글자의 크기 지정

-  <section> 태그로 문서의 영역을 구분. <h1>의 크기도 상대적으로 작아진다

 

HTML에서 특수문자 입력하기

-  <, >, &등의 문자는 HTML에서 의미를 가지는 문자들로, 단순히 사용할 수 없다

표현하고자 하는 문자 표기법
(공백) &nbsp;
< &lt;
> &gt;
& &amp;
" &quot;

 다음과 같이 변경해 표현

 

 

5. HTML 마크업 요소

 

텍스트 포맷 관련

 <b> 굵은 글씨로표시

 <strong> 굵은 글씨 + 중요한 부분을 알림

 <i> 이탤릭

 <s> 취소선

 <u> 밑줄

 

목록(list) 관련

<ul> 번호 없는 목록 (심볼)

<ol> 번호 있는 목록 (숫자, 알파벳, 로마숫자 등)

-  <li> ul/ol의 하위에 들어가는, 리스트 각 줄 태그

ol 속성

  1 : 숫자 (기본값)

   a, A : 알파벳 (소, 대문자)

   i, I : 로마숫자 (소, 대문자)

 

표(Table) 관련

-  thead, tbody, tfoot으로 행들을 구분

-  <tr> : 각 row를 나타낸다.

-  <td> : tr내부에서, 각 cell을 나타낸다.

-  <caption> : 테이블의 제목을 지정한다, 기본 : 가운데 정렬

 

-  <thead> : 머리글

-  <tbody> : 본문 내용

-  <tfoot> : 꼬리글

-  위의 태그들은 최소 하나 이상의 <tr>태그를 가져야 한다

 

열 단위의 접근

-  <colgroup> 열 그룹을 만든다

-  <col> 열 단위로 묶어 그룹을 만든다.

 

행/열 병합

-  <td>내부 속성으로 colspan="병합할 갯수", rowspan="병합할 갯수" 로 지정 가능

 

Image 관련

-  <img>태그로 삽입

-  src속성으로 이미지의 경로를 지정한다 - 상대경로/URL 다 가능

-  height/width속성으로 size지정

 

하이퍼링크

-  <a>태그를 사용

-  href 속성으로 클릭했을때 이동할 URL/문서 지정

-  target속성으로 현재 창 / 새창에서 열기 / 부모 창에서 열기 등 지정 (_self, _blank, _parent)

-  href="#idname" 으로 지정시, 해당 id의 태그 위치로 이동한다

 

-  <map>으로 이미지에 link 지정

-  <area>태그로 영역을 지정해서, 한 이미지라도 누르는 위치에 따라 다른 경로로 안내한다

-  <area>는 href / target / shape등의 속성을 지닌다.

-  shape로 rect, circle 등 모양을 지정 후 coords로 세부 사항 지정

 

-  <link> 태그로 외부 자원 연결 (위에서 본 css 등)

-  <head>내부에서 정의한다

-  rel속성 : 어떤 관계로 연결된 자원인지 (js, css 등)

 

프레임

-  현재 문서의 일부에 다른 문서를 띄운다

-  <iframe> 태그 사용

-  src : 띄울 문서의 경로

-  height, widht : 크기

 

Form 요소

-  client와 server간에 데이터를 주고받기 위한 용도

-  client는 form에 데이터 입력 후 서버로 전송한다

-  서버는 이에 따른 처리

 

데이터 입력

-  <form> form을 정의

-  <input> 데이터를 입력받기 위함

-  <textarea> 여러줄의 text 입력

-  <button> 버튼

select box

-  <select> selectbox

  -  <option> selectbox 내부의 각 값들 (위의 한국/일본/중국)

<label> 입력값에 라벨 달기, label을 클릭해도 input으로 포커스 지정

<fieldset> form 요소를 그룹으로 묶는다

-  <legend> 묶은 그룹에 제목 지정

 

전송 방식 결정

form의 속성값으로 정한다

method="GET / POST" (후술)

name : form의 이름을 지정

action : 이 form을 전송했을때 처리할 server 스크립트 지정

target : action에서 지정한 server 스크립트를 어디에서 열 것인가

 

 

input 종류

type에 따라 여러가지 형태로 나타난다

type 값 형태
text 텍스트 한 줄
password 비밀번호, text를 *처리
search 검색상자
tel 전화번호
url url (url 형식 체크)
email 메일주소 (email 형식 체크)
checkbox 2개 이상 선택 가능한 체크박스
radio 1개만 선택 가능한 체크박스
file 파일 첨부
number 숫자를 직접 입력
range 숫자를 입력하는 사이드-바
button 기능이 지정되지 않은 버튼
hidden 보이지 않음
(name, value등을 이용해 server로 데이터 전송)
submit 서버로 전송
image submit 버튼
그런데 이제 버튼에 이미지를 씌운
reset form 입력값 리셋

-  number / range의 속성 : min, max, step, value (최소값, 최대값, 값들 사이의 간격, 기본값)

-  checkbox / radio의 속성 : radio의 name속성 = 그 값들이 다 같아야한다

                                    checkbox는 name 관계없이 다중선택

-  button의 속성 : value = 버튼 안의 글자, onclick = 눌렀을때 일어날 동작

-  image의 속성 : src = 이미지 주소

-  file의 속성 : multiple = 여러 파일을 업로드 가능

 

공통속성

-  placeholder : 기본값. 회색글자로 표시. 클릭시 사라짐

-  readonly : 수정 불가

-  required : 필수입력항목

 

여러 data중 선택

-  <select> 태그 사용

-  내부의 <option> 태그로 각 항목을 지정한다

-  option 태그의 속성

  -  value : 각 항목의 값

  -  selected : 기본 선택값

optgroup 적용

-  <optgroup> 로 옵션들을 그룹화한다

 

여러 줄 입력

-  <textarea> 태그 사용

-  cols rows속성으로 박스의 크기 지정

 

기타 태그

-  <button>

-  <input type="button">과 거의 동일하다. submit, reset, button 3종류가 있는것도 동일

-  차이점 : CSS/img등으로 자유롭게 디자인 변경 가능

 

-  <progress>

-  작업의 진행률 게이지 바

-  value 속성으로 현재 진행중인 값, max 속성으로 완료(최대)값 설정

 

공간 분할 태그

-  <div>

-  block형식으로 공간 분할

 

-  <span>

-  inline형식으로 분할

 

 

6. CSS선택자

 

-  HTML문서에서 CSS의 적용 대상을 선택하기 위한 selector

 

일반 선택자

 

전체 선택자

-  * { }

-  모든 element를 선택한다

-  거의 사용하지 않는다

 

타입 선택자

-  typeName {}

-  div {} 으로 모든 div에 CSS를 적용한다

-  div, span {} 이렇게 2가지 이상의 타입에 적용

 

클래스 선택자

-  .className {}

-  .target {} 으로 class="target"이 있는 모든 element에 적용

-  div.target {} 으로 class="target"이 있는 div들에 적용

 

ID 선택자

-  #IDName {}

-  #target {} 으로 id="target"인 element에 적용

-  id는 1개이므로, 다른 조건 제한 옵션은 필요 없다

 

선택자의 우선순위

-  전체 < 타입 < 클래스 < ID

 

복합 선택자

 

하위 선택자

-  element element {}

-  div p {} 로 div에 포함되는 모든 p 태그에 적용

-  div와 p 사이에 몇개의 다른 태그가 있어도 적용된다 (n단계 하위 요소까지 다 적용)

 

자식 선택자

-  element > element {}

-  div>p {} 로 div의 모든 자식 p 태그에 적용

-  div와 p 사이에 다른 태그가 존재하면 적용되지 않는다

 

인접 형제 선택자

-  element + element {}

-  div + p {} 로 div 이후 계층이 같은(형제) p 태그중 첫번째에 적용

-  여러 형제 element들 중 첫번째만 선택

 

일반 형제 선택자

-  element ~ element {}

-  div ~ p {} 로 div 이후 계층이 같은 p 전체에 적용

 

가상 클래스 선택자

 가상의 클래스를 선택한다

 element:selector 형식으로 사용

   ex) a:link {}

가상 클래스 선택자 선택 대상
:link 방문하지 않은 링크
:visited 방문했던 링크
:hover 마우스가 올라가있을때 적용
:active 활성화(클릭 등)된 경우 적용
:focus 포커스를 가질때
:first-child
:last-child
첫번째
마지막
자식을 지정
:nth-child(n) n번째 자식(들)을 지정
(2n+1)과 같은 식으로 수열로 지정 가능
n은 0부터 시작 자식의 번호는 1부터 시작

 

가상 엘리먼트 선택자

 가상의 엘리먼트 선택한다

 element::selector 형식으로 사용

   ex) p::selection {}

가상 클래스 선택자 선택 대상
::after 지정 요소 뒤에 content 추가
::before 지정 요소 앞에 content 추가
::first-letter
::first-letter
지정 요소의 첫번째 문자
지정 요소의 첫번째 줄
::selection 사용자가 선택하는 요소들
(ex. 마우스를 드래그하면 적용)

 

속성 선택자

 특정 속성 / 속성값을 가지는 element를 선택

 [속성A = 값B] A속성의 값이 B인 element를 선택한다

속성 선택자 선택 대상
[A] A 속성이 포함된 element
[A=V] A속성의 값이 정확히 V인 element
[A~=V] A속성의 값이 V 단어를 포함하는 element
(단어란 : 앞/뒤가 공백문자로 분리된 것)
[A^=V] A속성의 값이 V로 시작하는 element
[A*=V] A속성의 값이 V를 포함하는 element
(단어가 아님)
[A$=V] A속성 값이 V로 끝나는 element
[A|=V] A속성값이 정확히 V이거나,
V-으로 시작하는 element

 

선택자들의 우선순위

-  동일한 element에 여러 선택자가 적용될 경우,

1. css문서 상 더 아래에 기술된 선택자

2. 더 구체적인 선택자

3. !important를 가지는 선택자

가 우선 적용된다

 

 

7. CSS 태그별 세부 속성

 

Font 속성

font-family : 글꼴, 이름에 공백이 있을경우 ""으로 감싸준다,

                    여러개 입력시 앞에서부터 확인, 설치되지 않은 폰트면 넘어간다

-  font-size : 글자 크기, px, pt, 150%등으로 표현

font-style : 글자 스타일, 이탤릭 등

font-weight : 글자굵기, bold, bolder 등

font : font 속성 일괄설정

 

Text 속성

text-align : text 정렬 방식 지정, left, right, center, justify

text-ident : 첫 line 들여쓰기 지정

text-transform : 대/소문자화, uppercase, lowercase 등

vertical-align : 수직 정렬

-  color : 색 지정

line-height : 줄간격 지정, pt, px, %등으로 표현

 

디자인 속성

-  cursor : 마우스 모양 변경

display : 표현 방식 조정, inline, block, none

background-color : 배경색, color값 혹은 transparent 지정

background-image : 배경이미지, url

background-repeat : 배경 이미지 끝나면 반복 여부

background-position : 배경 이미지 위치 지정

background : 배경 속성 일괄설정

 

Table 속성

-  width, height : 너비, 높이

-  text-align : 내부 정렬(수평)

-  vertical-align : 내부 정렬(수직)

-  border-width : 외곽 너비

-  border-style : 외곽 스타일

-  border-color : 외곽 색, 4방향 각각 다른 색 가능

-  border : 외곽 속성 일괄설정, 4방향 다른 색 불가능

 

박스모델 속성

-  CSS는 모든 element를 어떠한 상자에 들어있는 상태로 생각한다

-  박스안에서 element의 위치, 박스와 박스의 간격 등을 조정 가능

-  margin : Box의 외곽거리를 지정, 4방향 지정 가능, 속성값 auto로 상/하 좌/우 균등 분배 가능

-  padding : element와 Box의 간격을 조정, 4방향 지정 가능

-  min-height : 최소 높이를 보장, 브라우저 크기가 작아져도 최소치를 유지

 

포지션 관련 속성

-  width, height : 높이, 너비. auto로 설정시 가능한 크기만큼 채운다

-  position : static (top/left로부터의 거리), absolute (상위 box 기준 top,left,right,bottom 등 위치 지정)

-  overflow : 상위 element보다 지금 element가 클 경우 처리법. visible, hidden, auto

-  visiblility : 화면에 보일지 말지를 결정. display:none과는 달리 표시하지 않아도 영역은 차지한다

-  z-index : 여러 element를 겹쳐 표시. z-index값이 큰쪽이 위로 온다.

 

 

8. semantic tag

 

semantic tag란?

-  <h1>태그와 <font size="xx"> 는 그 의미가 동일하다

-  하지만 font태그는 아무 의미도 없지만, h1태그는 header, 그중 최상위 태그라는 의미를 내포

-  자기 자신이 나타내는 바를 알림으로서, 어떠한 의미를 가지게 한다

-  콘텐츠의 의미를 내포하는 이러한 태그를 semantic tag라 한다.

 

-  form, table, img 등도 각각 나타내는 바가 명확한 semantic tag이다.

-  header : 보통 nav, search form등이 들어가는 머리 부분으로 사용하는 태그

-  nav : 다른 문서/사이트로 연결하는 링크가 모여있는 태그

-  section : 같은 주제를 가지는 element의 묶음

-  aside : 왼쪽/오른쪽의 사이드 내용

-  footer : 웹사이트정보, 연락, copyright 등을 표현

 

'WEB 공부' 카테고리의 다른 글

[WEB] Backend - EL, JSTL  (0) 2021.05.16
[WEB] Backend - Servlet, JSP  (0) 2021.05.16
[JAVA] JDBC  (0) 2021.05.16
[WEB] Frontend - Bootstrap  (0) 2021.05.15
[WEB] Frontend - AJAX  (0) 2021.05.15
[WEB] Frontend - JQuery  (0) 2021.05.09
[WEB] Frontend - JavaScript, WebBrowser  (0) 2021.05.08

+ Recent posts