HTML,CSS
HTML,CSS 기초 (Chapter.2 [1] HTML 문법)
리모찌
2023. 4. 20. 00:53
[네카라쿠배 프론트엔드 취업완성 스쿨 2기]
HTML 문법
기본적으로 HTML 문법은 매우 간단하다.
태그: 각자의 의미를 가지며 다음과같은 형태를 가짐
<TAG></TAG> // tag 와 /tag 사이 전체를 하나의 요소(element) 라고 한다.
<TAG>CONTENT</TAG> // 태그와 요소는 거의 같은의미로 사용
<h1>토끼와 거북이</h1> //태그의 이름이 h1 , <h1> : 제목을 뜻함(대주제)
<p>옛날 옛적에 토끼와 거북이가 살았습니다 ...</p> //<p> : 문단을 의미
<!-- 다음과 같이 이해할 수 있음 -->
<주제1>토끼와 거북이</주제1>
<문단>옛날 옛적에 토끼와 거북이가 살았습니다 ...</문단>
또한 태그는 열리고(open) 닫히는(close) 태그 구조를 가지고 있으며 이는 한 쌍
(시작하고(start) 종료되는(end) 구조라고 부르기도 함)
이 구조는 태그의 범위를 만들어 준다.
<h1>토끼와 거북이</h1>
<!-- 다음과 같이 이해할 수 있음 -->
<주제1여기서열림>토끼와 거북이</주제1여기서닫힘>
*입문자가 주의할 점은 닫히는 태그는 태그 이름 앞에 /(슬래시)가 붙는다는 것*
속성(Attribute)과 값(Value)]
<TAG 속성="값"></TAG> //alt(Alternative) = 대체 텍스트(이미지가 제대로 삽입되지 못했을때, 나타나는 글자 )
//src(source) = 소스의 위치, 소스의 값으로 경로를 입력 ㅇㅇ
<img src="./my_photo.jpg" alt="내 프로필 사진" /> //<img />는 이미지를 삽입할 때 사용하는 태그(닫힘태그가없이끝남,:빈태그)
<div class="name">홍길동</div> //<div>는 분할을 의미,<div></div>는 의미를 가지지 않는 태그로 어떤
내용이든 묶어낼(Wrap) 수 있음 위에선 '홍길동'이라는 텍스트를 묶었으나
그 내용이 무엇을 의미하는지 알 수 없기 때문에 name이라는 태그 별명(class)을 추가
<!-- 다음과 같이 이해할 수 있음-->
<이미지삽입 소스위치="./my_photo.jpg" 대체텍스트="내 프로필 사진" />
<의미없는분할 태그별명="name">홍길동</의미없는분할>
부모와 자식요소
<PARENT> //<PARENT>의 범위: 열고닫는공간안에 요소, Contents 를 넣을 수 있다.
<CHILD></CHILD> // <CHILD> Contents 가 <PARENTS>안에 삽입되어있음
</PARENT>
<section class="fruits"> //Section 안에 h1 태그 , ul 태그 안에 li 컨텐츠가 4개 들어있음
<h1>과일 목록</h1> // 자식의 자식 요소 :후손(자손,하위)요소
<ul> // 부모의 부모 요소 : 조상(상위) 요소
<li>사과</li>
<li>딸기</li>
<li>바나나</li>
<li>오렌지</li>
</ul>
</section>
<!-- 다음과 같이 이해할 수 있음 -->
<섹션영역 태그별명="fruits">
<주제1>과일 목록</주제1>
<순서없는목록>
<항목>사과</항목>
<항목>딸기</항목>
<항목>바나나</항목>
<항목>오렌지</항목>
</순서없는목록>
</섹션영역>
빈태그
HTML에는 닫히는 개념이 없는 태그들이 있다.
<img /> //셀프 클로징 태그(빈태그)
<!-- `/`가 없는 빈 태그 -->
<TAG>
<!-- `/`가 있는 빈 태그 -->
<TAG/>
<TAG />
*HTML5에서는 위 2가지 형태를 다 사용할 수 있는데, XHTML 버전이나 린트(Lint) 환경 혹은 프레임워크 세팅에 따라 /를 사용하는 것이 필수가 될 수 있음*
HTML 문서의 범위
index.html 같은 HTML 파일을 우리는 HTML 문서라고 표현할 수 있다.
<!DOCTYPE html>
<html> //html 태그의 역할: index.html 같은파일의 전체문서의 해당하는 부분의 영역
<head> //head 태그의 역할 : 정보부분
문서의 정보
</head>
<body> //body 태그의 역할 : 구조부분(이미지,동영상,글자)
문서의 구조
</body>
</html>
!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"> //meta 태그: 문자전체의 인코딩방식을 설정 ->UTF-8
<meta name="author" content="홍길동"> //author:사이트제작자 , 제작자:홍길동
<meta name="description" content="우리 사이트가 최고!"> //description :페이지에대한 설명 ,우리사이트가 최고!
<title>내 사이트</title> //페이지의 제목
<link rel="stylesheet" href="./css/main.css"> //
<script src="./js/main.js"></script>
</head>
<body> //화면을 구성하는 요소들로 채워져있다.
<section>
<h1></h1>
<div>
<ul>
<li></li>
<li></li>
</ul>
</div>
</section>
</body>
</html>
DOCTYPE (DTD,버전지정)
DOCTYPE: 우리가 만드는 특정한 html 파일이 브라우저에서 어떠한 버전으로 해석되어서 페이지에 출력될지 정의하는부분
기본적으로 6가지버전
DOCTYPE(DTD, Document Type Definition)은 마크업 언어에서 문서 형식을 정의
이는 웹 브라우저에 우리가 제공할 HTML 문서를 어떤 HTML 버전의 해석 방식으로 구조화하면 되는지를 알려줌
(HTML은 크게 1, 2, 3, 4, X-, 5 버전이 있다)-
현재의 표준 모드는 HTML5 입니다.
<!-- HTML 5 -->
<!DOCTYPE html> html 5버전으로 해석되서 돌아가게됨
<!-- XHTML 1.0 Transitional --> xhtml 버전으로 만들어진 html사이트는 아래의 코드를 작성해줘야함 : <!DOCTYPE html PUBLIC>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
HTML 문서의 정보
TITLE(웹 페이지의 제목) : 웹 브라우저의 각 사이트 탭에서 이름으로 표시 (HTML 문서의 제목을 정의 )
META(웹 페이지의 정보) : HTML 문서(웹페이지)에 관한 정보(표시 방식, 제작자(소유자), 내용, 키워드 등)를 검색엔진이나 브라우저에 제공
빈(Empty) 태그
<head>
<meta charset="UTF-8"> //charset: 문자셋트(문자인코딩방식) -> UTF-8(아시아권언어특화)
// 문자인코딩방식 부분은 꼭 써줘야함
//문자인코딩:텍스트가 출력하는 방식
<meta name="author" content="홍길동"> //
<meta name="description" content="우리 사이트가 최고!">
</head>
<!-- 다음과 같이 이해할 수 있다. -->
<문서의정보범위>
<정보 문자인코딩방식="UTF-8">
<정보 정보종류="사이트제작자" 정보값="홍길동">
<정보 정보종류="사이트설명" 정보값="우리 사이트가 최고!">
</문서의정보범위>
속성 의미 값
charset 문자인코딩 방식 UTF-8, EUC-KR 등..
name 검색엔진 등에 제공하기 위한 정보의 종류(메타 데이터) author, description, keywords, viewport
content name 이나 http-equiv 속성의 값을 제공
LINK(CSS 불러오기)
외부 문서를 연결할 때 사용한다. //CSS 파일등등
특히 HTML 외부에서 작성된 CSS 문서(xxx.css 파일)를 불러와 연결할 때 사용, 빈(Empty) 태그
<head>
<link rel="stylesheet" href="./css/main.css"> //링크태그에 가지고올문서, 현재문서와의 관계를 설정 후, 경로를 href속성에작성
<link rel="icon" href="./favicon.png"> // icon 을 가져올건데, href 태그에 외부아이콘(이미지)을 가져옴
</head>
<!-- 다음과 같이 이해할 수 있다. -->
<문서의정보범위>
<외부문서연결 관계="CSS" 문서경로="./css/main.css">
<외부문서연결 관계="사이트대표아이콘" 문서경로="./favicon.png">
</문서의정보범위>
속성 의미 값
rel (필수)현재 문서와 외부 문서와의 관계를 지정 stylesheet, icon 등..
href 외부 문서의 위치를 지정 경로
*<link> 태그는 최소 <link rel = ""> 로 끝나야함 (rel 필수 )
STYLE(CSS 작성하기)
CSS를 외부 문서에서 작성하여 연결하는 것이 아니고 HTML 문서 내부에 작성할 때 사용
<style> //스타일태그안에는 CSS 문법이 들어가있다.(외부에다가 CSS파일을 만들어서가져오는방법과는 다름)
img { // CSS는 스타일태그 안에 써줘야함
width: 100px;
height: 200px;
}
p {
font-size: 20px;
font-weight: bold;
}
</style>
<!-- 다음과 같이 이해할 수 있습니다. -->
<스타일정의>
<!-- CSS 코드 -->
</스타일정의>
SCRIPT(JS 불러오거나 작성하기)
HTML 문서에서 CSS는, 작성된 CSS를 <link>로 불러오거나 <style></style>안에 작성
JS는 <script></script>로 이 2가지 방식을 모두 사용
<!-- 불러오기 -->
<script src="./js/main.js"></script> //스크립트범위안에 내용: src를 통해서 자바스크립트파일을 가져올건데 그경로를 설정
<!-- 작성하기 -->
<script> //내부에서 자바스크립트 내용이 작성되어있음(외부에서가져온게아니고 안에다가작성)
function windowOnClickHandler(event) {
console.log(event);
}
window.addEventListener('click', windowOnClickHandler);
</script>
<!-- 다음과 같이 이해할 수 있습니다. -->
<!-- 불러오기 -->
<자바스크립트 문서경로="./js/main.js"></자바스크립트>
<!-- 작성하기 -->
<자바스크립트>
<!-- JS 코드 -->
</자바스크립트>
HTML 문서의 구조
<body></body> 안에서 사용하는 태그들은 HTML 문서의 구조
DIV(막 쓰는 태그) : 아무런 의미를 가지지않음 -> 제어의 용도로 쓰이게됨
<div></div>의 ‘div’는 ‘division’으로 약자로 ‘분할’을 뜻하고 ‘문서의 부분이나 섹션을 정의’
명확한 의미를 가지지 않기 때문에 정말 많은 경우 단순히 특정 범위를 묶는(wrap) 용도로 사용
보통 이렇게 묶인 부분들에 CSS나 JS를 적용
<body>
<div>
<p></p>
</div>
<div>
<div>
<h1></h1>
<p></p>
</div>
</div>
</body>
<!-- 다음과 같이 이해할 수 있습니다. -->
<body>
<묶음1>
<p></p>
</묶음1>
<묶음2>
<묶음2-1>
<h1></h1>
<p></p>
</묶음2-1>
</묶음2>
</body>
IMG(이미지 넣는 태그)
<img>는 HTML에 이미지를 삽입할 때 사용
(웹 페이지에 이미지를 삽입하는 방식은 크게 2가지로, ‘HTML에서 삽입(IMG)’과 ‘CSS에서 삽입(background)’이 있다)
<body>
<img src="./kitty.png" alt="냥이"> *src와 alt 두개는 필수속성*
</body>
<!-- 다음과 같이 이해할 수 있다. -->
<body>
<이미지 경로="./kitty.png" 대체텍스트="냥이">
</body>
*alt를 생략하게되면 웹표준에 어긋나게됨*